--- pinentry-0.7.2/gtk+-2/pinentry-gtk-2.c 2004-09-02 04:47:13.000000000 +0300 +++ pinentry-0.7.2.new/gtk+-2/pinentry-gtk-2.c 2007-02-06 19:48:26.000000000 +0200 @@ -89,11 +89,14 @@ constrain_size (GtkWidget *win, GtkRequi static void grab_keyboard (GtkWidget *win, GdkEvent *event, gpointer data) { + int r; if (!pinentry->grab) return; - if (gdk_keyboard_grab (win->window, FALSE, gdk_event_get_time (event))) - g_error ("could not grab keyboard"); + gtk_widget_realize (win); + + if ((r=gdk_keyboard_grab (win->window, FALSE, gdk_event_get_time (event))) != 0) + g_error ("could not grab keyboard (%d)", r); } /* Remove grab. */