diff options
author | Tor Lillqvist <tml@iki.fi> | 2004-01-28 02:10:07 +0000 |
---|---|---|
committer | Tor Lillqvist <tml@src.gnome.org> | 2004-01-28 02:10:07 +0000 |
commit | 4263ea1502c6b258e5aa631d5fa73c6fcfc925de (patch) | |
tree | 187578c370f0ff1fafa3e53b772a63dcf1b7f73a /gdk/win32/gdkevents-win32.c | |
parent | 7af769f92c49fab087991ab63c15874f9a4c211b (diff) | |
download | gdk-pixbuf-4263ea1502c6b258e5aa631d5fa73c6fcfc925de.tar.gz |
Don' generate enter or leave events if the pointer is grabbed with
2004-01-28 Tor Lillqvist <tml@iki.fi>
* gdk/win32/gdkevents-win32.c (synthesize_leave_event,
synthesize_enter_event): Don' generate enter or leave events if
the pointer is grabbed with owner_events off, and the grab event
mask doesn't ask for them. (#129242)
(gdk_event_translate): Ditto for focus change events.
Diffstat (limited to 'gdk/win32/gdkevents-win32.c')
-rw-r--r-- | gdk/win32/gdkevents-win32.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/gdk/win32/gdkevents-win32.c b/gdk/win32/gdkevents-win32.c index 4bc9f13fb..b0582110a 100644 --- a/gdk/win32/gdkevents-win32.c +++ b/gdk/win32/gdkevents-win32.c @@ -1264,6 +1264,9 @@ synthesize_leave_event (GdkWindow *window, { POINT pt; + if (p_grab_window != NULL && !p_grab_owner_events && !(p_grab_mask & GDK_LEAVE_NOTIFY_MASK)) + return; + if (!(((GdkWindowObject *) window)->event_mask & GDK_LEAVE_NOTIFY_MASK)) return; @@ -1295,6 +1298,9 @@ synthesize_enter_event (GdkWindow *window, { POINT pt; + if (p_grab_window != NULL && !p_grab_owner_events && !(p_grab_mask & GDK_ENTER_NOTIFY_MASK)) + return; + if (!(((GdkWindowObject *) window)->event_mask & GDK_ENTER_NOTIFY_MASK)) return; @@ -2793,6 +2799,9 @@ gdk_event_translate (GdkDisplay *display, case WM_SETFOCUS: case WM_KILLFOCUS: + if (p_grab_window != NULL && !p_grab_owner_events && !(p_grab_mask & GDK_FOCUS_CHANGE_MASK)) + break; + if (!(((GdkWindowObject *) window)->event_mask & GDK_FOCUS_CHANGE_MASK)) break; |