summaryrefslogtreecommitdiffstats
path: root/WebCore/bindings/gobject/WebKitDOMBinding.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'WebCore/bindings/gobject/WebKitDOMBinding.cpp')
-rw-r--r--WebCore/bindings/gobject/WebKitDOMBinding.cpp28
1 files changed, 28 insertions, 0 deletions
diff --git a/WebCore/bindings/gobject/WebKitDOMBinding.cpp b/WebCore/bindings/gobject/WebKitDOMBinding.cpp
index b8fbdda..aa4610b 100644
--- a/WebCore/bindings/gobject/WebKitDOMBinding.cpp
+++ b/WebCore/bindings/gobject/WebKitDOMBinding.cpp
@@ -27,6 +27,7 @@
#include "Event.h"
#include "EventException.h"
#include "HTMLNames.h"
+#include "WebKitDOMDOMWindowPrivate.h"
#include "WebKitDOMElementPrivate.h"
#include "WebKitDOMNode.h"
#include "WebKitDOMNodePrivate.h"
@@ -118,4 +119,31 @@ gpointer kit(Element* element)
return DOMObjectCache::put(element, wrappedElement);
}
+static gpointer wrapEventTarget(EventTarget* target)
+{
+ ASSERT(target);
+
+ gpointer wrappedTarget = 0;
+
+ if (target->toNode()) {
+ Node* node = target->toNode();
+ wrappedTarget = wrapNode(node);
+ } else if (target->toDOMWindow()) {
+ DOMWindow* window = target->toDOMWindow();
+ wrappedTarget = wrapDOMWindow(window);
+ }
+
+ return DOMObjectCache::put(target, wrappedTarget);
+}
+
+gpointer kit(WebCore::EventTarget* obj)
+{
+ g_return_val_if_fail(obj, 0);
+
+ if (gpointer ret = DOMObjectCache::get(obj))
+ return ret;
+
+ return DOMObjectCache::put(obj, WebKit::wrapEventTarget(obj));
+}
+
} // namespace WebKit