diff options
author | Grant Gayed <grant_gayed@ca.ibm.com> | 2013-05-21 12:05:54 -0400 |
---|---|---|
committer | Grant Gayed <grant_gayed@ca.ibm.com> | 2013-05-21 12:05:54 -0400 |
commit | 6b181ae8df9996e17bcff6504c65ea877a2f31df (patch) | |
tree | 1c02a5067b5f202e9a753b6443052b5f674031e4 | |
parent | b402979b5de3a90d8705dbe2f45ac1f801226c5e (diff) | |
download | eclipse.platform.swt-6b181ae8df9996e17bcff6504c65ea877a2f31df.tar.gz eclipse.platform.swt-6b181ae8df9996e17bcff6504c65ea877a2f31df.tar.xz eclipse.platform.swt-6b181ae8df9996e17bcff6504c65ea877a2f31df.zip |
Bug 408608 - [Browser] WebKitGTK 2.0 spews error message on every
keystroke
-rw-r--r-- | bundles/org.eclipse.swt/Eclipse SWT WebKit/gtk/org/eclipse/swt/browser/WebKit.java | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT WebKit/gtk/org/eclipse/swt/browser/WebKit.java b/bundles/org.eclipse.swt/Eclipse SWT WebKit/gtk/org/eclipse/swt/browser/WebKit.java index d67b34a96e..6a9dd53740 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT WebKit/gtk/org/eclipse/swt/browser/WebKit.java +++ b/bundles/org.eclipse.swt/Eclipse SWT WebKit/gtk/org/eclipse/swt/browser/WebKit.java @@ -931,13 +931,25 @@ boolean handleDOMEvent (long /*int*/ event, int type) { } /* key event */ + int keyEventState = 0; + long /*int*/ eventPtr = OS.gtk_get_current_event (); + if (eventPtr != 0) { + GdkEventKey gdkEvent = new GdkEventKey (); + OS.memmove (gdkEvent, eventPtr, GdkEventKey.sizeof); + switch (gdkEvent.type) { + case OS.GDK_KEY_PRESS: + case OS.GDK_KEY_RELEASE: + keyEventState = gdkEvent.state; + break; + } + OS.gdk_event_free (eventPtr); + } int keyCode = (int)WebKitGTK.webkit_dom_ui_event_get_key_code (event); int charCode = (int)WebKitGTK.webkit_dom_ui_event_get_char_code (event); - boolean altKey = WebKitGTK.webkit_dom_mouse_event_get_alt_key (event) != 0; - boolean ctrlKey = WebKitGTK.webkit_dom_mouse_event_get_ctrl_key (event) != 0; - boolean shiftKey = WebKitGTK.webkit_dom_mouse_event_get_shift_key (event) != 0; - boolean metaKey = WebKitGTK.webkit_dom_mouse_event_get_meta_key (event) != 0; - return handleKeyEvent(typeString, keyCode, charCode, altKey, ctrlKey, shiftKey, metaKey); + boolean altKey = (keyEventState & OS.GDK_MOD1_MASK) != 0; + boolean ctrlKey = (keyEventState & OS.GDK_CONTROL_MASK) != 0; + boolean shiftKey = (keyEventState & OS.GDK_SHIFT_MASK) != 0; + return handleKeyEvent(typeString, keyCode, charCode, altKey, ctrlKey, shiftKey, false); } boolean handleEventFromFunction (Object[] arguments) { |