[gtk+] quartz: always send GDK_NOTIFY_NONLINEAR crossing events
- From: Michael Natterer <mitch src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] quartz: always send GDK_NOTIFY_NONLINEAR crossing events
- Date: Tue, 20 Nov 2012 09:42:00 +0000 (UTC)
commit 455a0ecc1cf690018ea8d0223f8f37fd17271cef
Author: Michael Natterer <mitch gimp org>
Date: Fri Nov 9 17:12:30 2012 +0100
quartz: always send GDK_NOTIFY_NONLINEAR crossing events
so GtkMenu works properly. This is not right, but not more
wrong than always sending GDK_NOTIFY_ANCESTOR either.
(cherry picked from commit 35a9322e45bb403d34c9e4da036d9d8d559419fb)
gdk/quartz/gdkevents-quartz.c | 14 ++++++--------
1 files changed, 6 insertions(+), 8 deletions(-)
---
diff --git a/gdk/quartz/gdkevents-quartz.c b/gdk/quartz/gdkevents-quartz.c
index cd05882..fcda072 100644
--- a/gdk/quartz/gdkevents-quartz.c
+++ b/gdk/quartz/gdkevents-quartz.c
@@ -1121,8 +1121,9 @@ synthesize_crossing_event (GdkWindow *window,
switch ([nsevent type])
{
case NSMouseEntered:
- /* Enter events are considered always to be from the root window as we
- * can't know for sure from what window we enter.
+ /* Enter events are considered always to be from another toplevel
+ * window, this shouldn't negatively affect any app or gtk code,
+ * and is the only way to make GtkMenu work. EEK EEK EEK.
*/
if (!(window->event_mask & GDK_ENTER_NOTIFY_MASK))
return FALSE;
@@ -1132,14 +1133,11 @@ synthesize_crossing_event (GdkWindow *window,
x_root, y_root,
GDK_ENTER_NOTIFY,
GDK_CROSSING_NORMAL,
- GDK_NOTIFY_ANCESTOR);
+ GDK_NOTIFY_NONLINEAR);
return TRUE;
case NSMouseExited:
- /* Exited always is to the root window as far as we are concerned,
- * since there is no way to reliably get information about what new
- * window is entered when exiting one.
- */
+ /* See above */
if (!(window->event_mask & GDK_LEAVE_NOTIFY_MASK))
return FALSE;
@@ -1148,7 +1146,7 @@ synthesize_crossing_event (GdkWindow *window,
x_root, y_root,
GDK_LEAVE_NOTIFY,
GDK_CROSSING_NORMAL,
- GDK_NOTIFY_ANCESTOR);
+ GDK_NOTIFY_NONLINEAR);
return TRUE;
default:
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]