diff options
| author | fnasser <fnasser@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-01-16 22:30:11 +0000 |
|---|---|---|
| committer | fnasser <fnasser@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-01-16 22:30:11 +0000 |
| commit | 85f3b29c93fbb6a78e9c68a11a2523fc0e346d7e (patch) | |
| tree | a69972849a745b4dc2563dd515b2cdc6a5cffcf4 /libjava | |
| parent | 847e762f7cb78cece3119f93a0e5b0486f80e058 (diff) | |
| download | ppe42-gcc-85f3b29c93fbb6a78e9c68a11a2523fc0e346d7e.tar.gz ppe42-gcc-85f3b29c93fbb6a78e9c68a11a2523fc0e346d7e.zip | |
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c (pre_event_handler):
Discard GDK_ENTER_NOTIFY related to ungrabs.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@75999 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava')
| -rw-r--r-- | libjava/ChangeLog | 5 | ||||
| -rw-r--r-- | libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c | 21 |
2 files changed, 18 insertions, 8 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog index c1083e80c87..f181820539b 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,5 +1,10 @@ 2004-01-16 Fernando Nasser <fnasser@redhat.com> + * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c (pre_event_handler): + Discard GDK_ENTER_NOTIFY related to ungrabs. + +2004-01-16 Fernando Nasser <fnasser@redhat.com> + * java/awt/EventQueue.java (pop): Prevent breaking the chain if pop is called for an intermediate queue. diff --git a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c index 42f45b4ea0d..6004847c369 100644 --- a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c +++ b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c @@ -960,16 +960,21 @@ pre_event_handler (GtkWidget *widget, GdkEvent *event, jobject peer) } break; case GDK_ENTER_NOTIFY: - (*gdk_env)->CallVoidMethod (gdk_env, peer, postMouseEventID, - AWT_MOUSE_ENTERED, - (jlong)event->crossing.time, - state_to_awt_mods (event->crossing.state), - (jint)event->crossing.x, - (jint)event->crossing.y, - 0, - JNI_FALSE); + /* We are not interested in enter events that are due to + grab/ungrab and not to actually crossing boundaries */ + if (event->crossing.mode == GDK_CROSSING_NORMAL) + (*gdk_env)->CallVoidMethod (gdk_env, peer, postMouseEventID, + AWT_MOUSE_ENTERED, + (jlong)event->crossing.time, + state_to_awt_mods (event->crossing.state), + (jint)event->crossing.x, + (jint)event->crossing.y, + 0, + JNI_FALSE); break; case GDK_LEAVE_NOTIFY: + /* We are not interested in leave events that are due to + grab/ungrab and not to actually crossing boundaries */ if (event->crossing.mode == GDK_CROSSING_NORMAL) (*gdk_env)->CallVoidMethod (gdk_env, peer, postMouseEventID, |

