summaryrefslogtreecommitdiffstats
path: root/x11-libs/gtk+/files/gtk+-1.2.10-cvs-focus.patch
diff options
context:
space:
mode:
Diffstat (limited to 'x11-libs/gtk+/files/gtk+-1.2.10-cvs-focus.patch')
-rw-r--r--x11-libs/gtk+/files/gtk+-1.2.10-cvs-focus.patch17
1 files changed, 17 insertions, 0 deletions
diff --git a/x11-libs/gtk+/files/gtk+-1.2.10-cvs-focus.patch b/x11-libs/gtk+/files/gtk+-1.2.10-cvs-focus.patch
new file mode 100644
index 0000000..96c3662
--- /dev/null
+++ b/x11-libs/gtk+/files/gtk+-1.2.10-cvs-focus.patch
@@ -0,0 +1,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;