Changeset 64580 in webkit
- Timestamp:
- Aug 3, 2010 12:41:18 PM (14 years ago)
- Location:
- trunk
- Files:
-
- 1 added
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/ChangeLog
r64550 r64580 1 2010-08-03 Xan Lopez <xlopez@igalia.com> 2 3 Reviewed by Gustavo Noronha. 4 5 [GTK] Fix DOM event dispatch 6 https://bugs.webkit.org/show_bug.cgi?id=40847 7 8 Add new files to the build. 9 10 * GNUmakefile.am: 11 1 12 2010-08-03 Xan Lopez <xlopez@igalia.com> 2 13 -
trunk/GNUmakefile.am
r64550 r64580 360 360 DerivedSources/webkit/WebKitDOMEvent.h \ 361 361 DerivedSources/webkit/WebKitDOMMessagePort.h \ 362 DerivedSources/webkit/WebKitDOMMouseEvent.h \ 362 363 DerivedSources/webkit/WebKitDOMNamedNodeMap.h \ 363 364 DerivedSources/webkit/WebKitDOMNode.h \ … … 369 370 DerivedSources/webkit/WebKitDOMText.h \ 370 371 DerivedSources/webkit/WebKitDOMTreeWalker.h \ 372 DerivedSources/webkit/WebKitDOMUIEvent.h \ 371 373 DerivedSources/webkit/WebKitDOMBlob.h \ 372 374 DerivedSources/webkit/WebKitDOMFile.h \ … … 526 528 DerivedSources/webkit/WebKitDOMEvent.cpp \ 527 529 DerivedSources/webkit/WebKitDOMEventPrivate.h \ 530 DerivedSources/webkit/WebKitDOMEventTargetPrivate.h \ 528 531 DerivedSources/webkit/WebKitDOMFile.cpp \ 529 532 DerivedSources/webkit/WebKitDOMFileList.cpp \ … … 666 669 DerivedSources/webkit/WebKitDOMMessagePort.cpp \ 667 670 DerivedSources/webkit/WebKitDOMMessagePortPrivate.h \ 671 DerivedSources/webkit/WebKitDOMMouseEvent.cpp \ 672 DerivedSources/webkit/WebKitDOMMouseEventPrivate.h \ 668 673 DerivedSources/webkit/WebKitDOMNamedNodeMap.cpp \ 669 674 DerivedSources/webkit/WebKitDOMNamedNodeMapPrivate.h \ … … 698 703 DerivedSources/webkit/WebKitDOMTreeWalker.cpp \ 699 704 DerivedSources/webkit/WebKitDOMTreeWalkerPrivate.h \ 705 DerivedSources/webkit/WebKitDOMUIEvent.cpp \ 706 DerivedSources/webkit/WebKitDOMUIEventPrivate.h \ 700 707 DerivedSources/webkit/WebKitDOMValidityState.cpp \ 701 708 DerivedSources/webkit/WebKitDOMValidityStatePrivate.h \ … … 790 797 $(AM_V_GEN)cp -f $< $@ 791 798 799 $(top_builddir)/DerivedSources/webkit/WebKitDOMEventTargetPrivate.h: $(WebCore)/bindings/gobject/WebKitDOMEventTargetPrivate.h 800 $(AM_V_GEN)cp -f $< $@ 801 792 802 # Filter out SVG for now 793 803 gdom_feature_defines := $(filter-out ENABLE-SVG%, $(FEATURE_DEFINES)) -
trunk/WebCore/ChangeLog
r64579 r64580 1 2010-08-03 Xan Lopez <xlopez@igalia.com> 2 3 Reviewed by Gustavo Noronha. 4 5 [GTK] Fix DOM event dispatch 6 https://bugs.webkit.org/show_bug.cgi?id=40847 7 8 Bind UI and Mouse events and add ad-hoc kit method for WebCore 9 Events. 10 11 * GNUmakefile.am: 12 * bindings/gobject/WebKitDOMBinding.cpp: 13 (WebKit::kit): 14 * bindings/gobject/WebKitDOMBinding.h: 15 * bindings/gobject/WebKitDOMEventTarget.cpp: 16 (WebKit::core): 17 * bindings/gobject/WebKitDOMEventTargetPrivate.h: Added. 18 * bindings/scripts/CodeGeneratorGObject.pm: 19 1 20 2010-08-03 Nikolas Zimmermann <nzimmermann@rim.com> 2 21 -
trunk/WebCore/GNUmakefile.am
r64577 r64580 565 565 WebCore/bindings/gobject/WebKitDOMEventTarget.cpp \ 566 566 WebCore/bindings/gobject/WebKitDOMEventTarget.h \ 567 WebCore/bindings/gobject/WebKitDOMEventTargetPrivate.h \ 567 568 WebCore/bindings/gobject/WebKitHTMLElementWrapperFactory.cpp \ 568 569 WebCore/bindings/gobject/WebKitHTMLElementWrapperFactory.h \ -
trunk/WebCore/bindings/gobject/WebKitDOMBinding.cpp
r60229 r64580 28 28 #include "EventException.h" 29 29 #include "HTMLNames.h" 30 #include "MouseEvent.h" 31 #include "UIEvent.h" 30 32 #include "WebKitDOMDOMWindowPrivate.h" 31 33 #include "WebKitDOMElementPrivate.h" … … 33 35 #include "WebKitDOMNodePrivate.h" 34 36 #include "WebKitHTMLElementWrapperFactory.h" 37 #include "webkit/WebKitDOMMouseEventPrivate.h" 38 #include "webkit/WebKitDOMUIEventPrivate.h" 35 39 36 40 namespace WebKit { … … 120 124 } 121 125 126 gpointer kit(Event* event) 127 { 128 if (!event) 129 return 0; 130 131 gpointer kitEvent = DOMObjectCache::get(event); 132 if (kitEvent) 133 return kitEvent; 134 135 gpointer wrappedEvent; 136 137 if (event->isMouseEvent()) 138 wrappedEvent = wrapMouseEvent(static_cast<MouseEvent*>(event)); 139 else if (event->isUIEvent()) 140 wrappedEvent = wrapUIEvent(static_cast<UIEvent*>(event)); 141 else 142 wrappedEvent = 0; 143 144 return DOMObjectCache::put(event, wrappedEvent); 145 } 146 122 147 static gpointer wrapEventTarget(EventTarget* target) 123 148 { -
trunk/WebCore/bindings/gobject/WebKitDOMBinding.h
r60229 r64580 30 30 class Node; 31 31 class Element; 32 class Event; 32 33 class EventTarget; 33 34 } // namespace WebCore … … 36 37 gpointer kit(WebCore::Node* node); 37 38 gpointer kit(WebCore::Element* element); 39 gpointer kit(WebCore::Event* event); 38 40 gpointer kit(WebCore::EventTarget* target); 39 41 -
trunk/WebCore/bindings/gobject/WebKitDOMEventTarget.cpp
r60243 r64580 32 32 #include "WebKitDOMEventTarget.h" 33 33 34 #include "EventTarget.h" 34 35 #include "WebKitDOMEvent.h" 35 36 … … 76 77 iface->dispatch_event(target, event, error); 77 78 } 79 80 namespace WebKit { 81 82 WebCore::EventTarget* core(WebKitDOMEventTarget* request) 83 { 84 g_return_val_if_fail(request, 0); 85 86 WebCore::EventTarget* coreObject = static_cast<WebCore::EventTarget*>(WEBKIT_DOM_OBJECT(request)->coreObject); 87 g_return_val_if_fail(coreObject, 0); 88 89 return coreObject; 90 } 91 92 } // namespace WebKit 93 -
trunk/WebCore/bindings/scripts/CodeGeneratorGObject.pm
r64552 r64580 127 127 $CLASS_NAME =~ s/DOMX_PATH/DOM_XPATH/; 128 128 $CLASS_NAME =~ s/DOM_WEB_KIT/DOM_WEBKIT/; 129 $CLASS_NAME =~ s/DOMUI/DOM_UI/; 129 130 return $CLASS_NAME; 130 131 } … … 1224 1225 my $type = shift; 1225 1226 1226 return 1 if $type eq "Node" or $type eq "Element" ;1227 return 1 if $type eq "Node" or $type eq "Element" or $type eq "Event"; 1227 1228 return 0; 1228 1229 } -
trunk/WebKit/gtk/ChangeLog
r64567 r64580 1 2010-08-03 Xan Lopez <xlopez@igalia.com> 2 3 Reviewed by Gustavo Noronha. 4 5 [GTK] Fix DOM event dispatch 6 https://bugs.webkit.org/show_bug.cgi?id=40847 7 8 Test DOM event dispatch. 9 10 * tests/testdomdomwindow.c: 11 (load_event_callback): 12 (test_dom_domview_signals): 13 (clicked_cb): 14 (load_status_callback): 15 (test_dom_domview_dispatch_event): 16 (main): 17 1 18 2010-08-03 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> 2 19 -
trunk/WebKit/gtk/tests/testdomdomwindow.c
r60229 r64580 27 27 #if GLIB_CHECK_VERSION(2, 16, 0) && GTK_CHECK_VERSION(2, 14, 0) 28 28 29 #define HTML_DOCUMENT "<html><head><title>This is the title</title></head><body>< /body></html>"29 #define HTML_DOCUMENT "<html><head><title>This is the title</title></head><body><p id='test'>test</p></body></html>" 30 30 31 31 typedef struct { … … 109 109 110 110 g_assert(fixture->clicked == FALSE); 111 gtk_test_widget_click 111 gtk_test_widget_click(GTK_WIDGET(fixture->webView), 1, 0); 112 112 } 113 113 … … 133 133 gtk_window_present(GTK_WINDOW(fixture->window)); 134 134 135 g_main_loop_run(fixture->loop); 136 137 g_assert(fixture->loaded); 138 g_assert(fixture->clicked); 139 } 140 141 static gboolean 142 clicked_cb(WebKitDOMEventTarget* target, WebKitDOMEvent* event, DomDomviewFixture* fixture) 143 { 144 g_assert(fixture->clicked == FALSE); 145 fixture->clicked = TRUE; 146 finish_loading(fixture); 147 return FALSE; 148 } 149 150 static void load_status_callback(WebKitWebView* webView, GParamSpec* spec, DomDomviewFixture* fixture) 151 { 152 WebKitLoadStatus status = webkit_web_view_get_load_status(webView); 153 if (status == WEBKIT_LOAD_FINISHED) { 154 WebKitDOMDocument* document; 155 WebKitDOMDOMWindow* domWindow; 156 WebKitDOMElement* element; 157 WebKitDOMEvent* event; 158 glong clientX, clientY; 159 160 document = webkit_web_view_get_dom_document(WEBKIT_WEB_VIEW(fixture->webView)); 161 g_assert(document); 162 domWindow = webkit_dom_document_get_default_view(document); 163 g_assert(domWindow); 164 fixture->domWindow = domWindow; 165 166 element = webkit_dom_document_get_element_by_id(document, "test"); 167 g_assert(element); 168 event = webkit_dom_document_create_event(document, "MouseEvent", NULL); 169 g_assert(event); 170 g_assert(WEBKIT_DOM_IS_EVENT(event)); 171 g_assert(WEBKIT_DOM_IS_MOUSE_EVENT(event)); 172 clientX = webkit_dom_element_get_client_left(element); 173 clientY = webkit_dom_element_get_client_top(element); 174 webkit_dom_mouse_event_init_mouse_event(WEBKIT_DOM_MOUSE_EVENT(event), 175 "click", TRUE, TRUE, 176 fixture->domWindow, 0, 0, 0, clientX, clientY, 177 FALSE, FALSE, FALSE, FALSE, 178 1, WEBKIT_DOM_EVENT_TARGET(element)); 179 g_signal_connect(element, "click-event", G_CALLBACK(clicked_cb), fixture); 180 g_assert(fixture->clicked == FALSE); 181 webkit_dom_event_target_dispatch_event(WEBKIT_DOM_EVENT_TARGET(element), event, NULL); 182 } 183 184 } 185 186 static void test_dom_domview_dispatch_event(DomDomviewFixture* fixture, gconstpointer data) 187 { 188 g_signal_connect(fixture->window, "map-event", G_CALLBACK(map_event_cb), fixture); 189 g_signal_connect(fixture->webView, "notify::load-status", G_CALLBACK(load_status_callback), fixture); 190 191 gtk_widget_show_all(fixture->window); 192 gtk_window_present(GTK_WINDOW(fixture->window)); 193 135 194 g_main_loop_run (fixture->loop); 136 137 g_assert(fixture->loaded);138 195 g_assert(fixture->clicked); 139 196 } … … 154 211 dom_domview_fixture_teardown); 155 212 213 g_test_add("/webkit/domdomview/dispatch_event", 214 DomDomviewFixture, HTML_DOCUMENT, 215 dom_domview_fixture_setup, 216 test_dom_domview_dispatch_event, 217 dom_domview_fixture_teardown); 218 156 219 return g_test_run(); 157 220 }
Note: See TracChangeset
for help on using the changeset viewer.