diff options
author | Felipe Heidrich <fheidric> | 2005-06-21 18:26:37 +0000 |
---|---|---|
committer | Felipe Heidrich <fheidric> | 2005-06-21 18:26:37 +0000 |
commit | e4d0f725cad583e1a9c9545fd5c976e586012248 (patch) | |
tree | 5baf62d1a593a3b015f1bce6f01c91d2c4601708 | |
parent | 7b11ed217c92e5c8ff93f2339d1feda0f0b753df (diff) | |
download | eclipse.platform.swt-e4d0f725cad583e1a9c9545fd5c976e586012248.tar.gz eclipse.platform.swt-e4d0f725cad583e1a9c9545fd5c976e586012248.tar.xz eclipse.platform.swt-e4d0f725cad583e1a9c9545fd5c976e586012248.zip |
100699
-rw-r--r-- | bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Widget.java | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Widget.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Widget.java index b4e6535fe2..8a43d58c24 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Widget.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Widget.java @@ -1074,12 +1074,12 @@ boolean sendKeyEvent (int type, GdkEventKey keyEvent) { char [] sendIMKeyEvent (int type, GdkEventKey keyEvent, char [] chars) { int index = 0, count = 0, state = 0; + int /*long*/ ptr = 0; if (keyEvent == null) { - int /*long*/ ptr = OS.gtk_get_current_event (); + ptr = OS.gtk_get_current_event (); if (ptr != 0) { keyEvent = new GdkEventKey (); OS.memmove (keyEvent, ptr, GdkEventKey.sizeof); - OS.gdk_event_free (ptr); switch (keyEvent.type) { case OS.GDK_KEY_PRESS: case OS.GDK_KEY_RELEASE: @@ -1112,10 +1112,14 @@ char [] sendIMKeyEvent (int type, GdkEventKey keyEvent, char [] chars) { * events. If this happens, end the processing of * the key by returning null. */ - if (isDisposed ()) return null; + if (isDisposed ()) { + if (ptr != 0) OS.gdk_event_free (ptr); + return null; + } if (event.doit) chars [count++] = chars [index]; index++; } + if (ptr != 0) OS.gdk_event_free (ptr); if (count == 0) return null; if (index != count) { char [] result = new char [count]; |