summaryrefslogtreecommitdiff
path: root/gdk/win32
diff options
context:
space:
mode:
authorTor Lillqvist <tml@iki.fi>2004-01-28 02:10:07 +0000
committerTor Lillqvist <tml@src.gnome.org>2004-01-28 02:10:07 +0000
commit4263ea1502c6b258e5aa631d5fa73c6fcfc925de (patch)
tree187578c370f0ff1fafa3e53b772a63dcf1b7f73a /gdk/win32
parent7af769f92c49fab087991ab63c15874f9a4c211b (diff)
downloadgdk-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')
-rw-r--r--gdk/win32/gdkevents-win32.c9
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;