gtk+-2: Make current focus visible again.
authorWerner Koch <wk@gnupg.org>
Fri, 24 Oct 2014 14:10:15 +0000 (16:10 +0200)
committerWerner Koch <wk@gnupg.org>
Fri, 24 Oct 2014 14:20:56 +0000 (16:20 +0200)
* gtk+-2/pinentry-gtk-2.c (grab_keyboard): Return false
(ungrab_keyboard): Ditto.
--

Probably due to a change in GTK+ the grab handler now need to return a
flag wether to call the other event handler.  Without that the focus
was not visible.

gtk+-2/pinentry-gtk-2.c

index 10298d6..8322530 100644 (file)
@@ -132,11 +132,11 @@ make_transient (GtkWidget *win, GdkEvent *event, gpointer data)
 
 
 /* Grab the keyboard for maximum security */
-static void
+static int
 grab_keyboard (GtkWidget *win, GdkEvent *event, gpointer data)
 {
   if (! pinentry->grab)
-    return;
+    return FALSE;
 
   if (gdk_keyboard_grab (win->window, FALSE, gdk_event_get_time (event)))
     {
@@ -144,11 +144,12 @@ grab_keyboard (GtkWidget *win, GdkEvent *event, gpointer data)
       grab_failed = 1;
       gtk_main_quit ();
     }
+  return FALSE;
 }
 
 
 /* Remove grab.  */
-static void
+static int
 ungrab_keyboard (GtkWidget *win, GdkEvent *event, gpointer data)
 {
   gdk_keyboard_ungrab (gdk_event_get_time (event));
@@ -158,6 +159,7 @@ ungrab_keyboard (GtkWidget *win, GdkEvent *event, gpointer data)
      code is taken from gtk_window_transient_parent_unrealized.  */
   gdk_property_delete (win->window,
                        gdk_atom_intern_static_string ("WM_TRANSIENT_FOR"));
+  return FALSE;
 }