summaryrefslogtreecommitdiffstats
path: root/x11-libs/gtk+/files/gtk+-1.2.10-cvs-focus.patch
blob: 96c36621bb2834ca7a0c7d44a31b75f9f40e5f2b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
--- gtk-1.2.10/gtk/gtkwindow.c.orig	Sat Mar 10 00:39:16 2001
+++ gtk-1.2.10/gtk/gtkwindow.c	Thu Apr 26 00:30:52 2001
@@ -985,7 +985,13 @@
       break;
     case EnterNotify:
     case LeaveNotify:
-      if (xev->xcrossing.detail != NotifyInferior &&
+      /* We only track the actual destination of keyboard events for real
+       * toplevels, not for embedded toplevels such as GtkPlug. The reason for
+       * this is that GtkPlug redirects events so the widget may effectively not
+       * have the focus even if it actually has the focus.
+       */
+      if (gdk_window_get_parent (GTK_WIDGET (window)->window) == GDK_ROOT_PARENT () &&
+	  xev->xcrossing.detail != NotifyInferior &&
 	  xev->xcrossing.focus && !window->window_has_focus)
 	{
 	  window->window_has_pointer_focus = (xev->xany.type == EnterNotify) ? TRUE : FALSE;