diff options
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.patch | 35 |
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; + |