← Back to team overview

lightdm-gtk-greeter-team team mailing list archive

[Merge] lp:~lightdm-gtk-greeter-team/lightdm-gtk-greeter/tooltips_focus_fix into lp:lightdm-gtk-greeter

 

Andrew P. has proposed merging lp:~lightdm-gtk-greeter-team/lightdm-gtk-greeter/tooltips_focus_fix into lp:lightdm-gtk-greeter.

Requested reviews:
  LightDM Gtk+ Greeter Development Team (lightdm-gtk-greeter-team)
Related bugs:
  Bug #1307764 in LightDM GTK+ Greeter: "Login window eats first key (lightdm-gtk2-greeter, at least)"
  https://bugs.launchpad.net/lightdm-gtk-greeter/+bug/1307764

For more details, see:
https://code.launchpad.net/~lightdm-gtk-greeter-team/lightdm-gtk-greeter/tooltips_focus_fix/+merge/216859

Currently tooltip window can be focused (and steal focus from another window).
This patch disable this behavior.
-- 
https://code.launchpad.net/~lightdm-gtk-greeter-team/lightdm-gtk-greeter/tooltips_focus_fix/+merge/216859
Your team LightDM Gtk+ Greeter Development Team is requested to review the proposed merge of lp:~lightdm-gtk-greeter-team/lightdm-gtk-greeter/tooltips_focus_fix into lp:lightdm-gtk-greeter.
=== modified file 'src/lightdm-gtk-greeter.c'
--- src/lightdm-gtk-greeter.c	2014-03-26 10:28:44 +0000
+++ src/lightdm-gtk-greeter.c	2014-04-23 11:04:01 +0000
@@ -2203,6 +2203,7 @@
         Window keyboard_xid = 0;
         GdkDisplay* display = gdk_x11_lookup_xdisplay (xevent->xmap.display);
         GdkWindow* win = gdk_x11_window_foreign_new_for_display (display, xwin);
+        GdkWindowTypeHint win_type = gdk_window_get_type_hint (win);
 
         /* Check to see if this window is our onboard window, since we don't want to focus it. */
         if (keyboard_win)
@@ -2211,8 +2212,10 @@
 #else
                 keyboard_xid = gdk_x11_drawable_get_xid (keyboard_win);
 #endif
-            
-        if (xwin != keyboard_xid && gdk_window_get_type_hint (win) != GDK_WINDOW_TYPE_HINT_NOTIFICATION)
+
+        if (xwin != keyboard_xid
+            && win_type != GDK_WINDOW_TYPE_HINT_TOOLTIP
+            && win_type != GDK_WINDOW_TYPE_HINT_NOTIFICATION)
         {
             gdk_window_focus (win, GDK_CURRENT_TIME);
             /* Make sure to keep keyboard above */


Follow ups