diff options
Diffstat (limited to 'WebCore/bindings/gobject/WebKitDOMBinding.cpp')
-rw-r--r-- | WebCore/bindings/gobject/WebKitDOMBinding.cpp | 28 |
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 |