summaryrefslogtreecommitdiffstats
path: root/mandriva/2010.2/dependencies/pinentry/0002-Fix-sigabrt-on-fail-grab-r229.patch
diff options
context:
space:
mode:
Diffstat (limited to 'mandriva/2010.2/dependencies/pinentry/0002-Fix-sigabrt-on-fail-grab-r229.patch')
-rw-r--r--mandriva/2010.2/dependencies/pinentry/0002-Fix-sigabrt-on-fail-grab-r229.patch35
1 files changed, 35 insertions, 0 deletions
diff --git a/mandriva/2010.2/dependencies/pinentry/0002-Fix-sigabrt-on-fail-grab-r229.patch b/mandriva/2010.2/dependencies/pinentry/0002-Fix-sigabrt-on-fail-grab-r229.patch
new file mode 100644
index 000000000..6162ba583
--- /dev/null
+++ b/mandriva/2010.2/dependencies/pinentry/0002-Fix-sigabrt-on-fail-grab-r229.patch
@@ -0,0 +1,35 @@
+Index: gtk+-2/pinentry-gtk-2.c
+===================================================================
+--- gtk+-2/pinentry-gtk-2.c (revision 228)
++++ gtk+-2/pinentry-gtk-2.c (revision 229)
+@@ -52,6 +52,7 @@
+ #endif
+
+ static pinentry_t pinentry;
++static int grab_failed;
+ static int passphrase_ok;
+ typedef enum { CONFIRM_CANCEL, CONFIRM_OK, CONFIRM_NOTOK } confirm_value_t;
+ static confirm_value_t confirm_value;
+@@ -135,7 +136,11 @@
+ return;
+
+ if (gdk_keyboard_grab (win->window, FALSE, gdk_event_get_time (event)))
+- g_error ("could not grab keyboard");
++ {
++ g_critical ("could not grab keyboard");
++ grab_failed = 1;
++ gtk_main_quit ();
++ }
+ }
+
+
+@@ -520,7 +525,7 @@
+ while (gtk_events_pending ())
+ gtk_main_iteration ();
+
+- if (confirm_value == CONFIRM_CANCEL)
++ if (confirm_value == CONFIRM_CANCEL || grab_failed)
+ pe->canceled = 1;
+
+ pinentry = NULL;
+