You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
48 lines
1.9 KiB
48 lines
1.9 KiB
From b0e0bdeac5d40ca645afc9017778b39a26303523 Mon Sep 17 00:00:00 2001
|
|
From: Werner Koch <wk@gnupg.org>
|
|
Date: Wed, 11 Jan 2017 18:40:17 +0100
|
|
Subject: [PATCH 01/25] gtk2: Fix a problem with fvwm
|
|
|
|
* gtk+-2/pinentry-gtk-2.c (grab_pointer): Take care of
|
|
GDK_GRAB_ALREADY_GRABBED.
|
|
--
|
|
|
|
Debian-bug-id: 850708
|
|
Co-authored-by: Vincent Lefevre <vincent@vinc17.net>
|
|
Signed-off-by: Werner Koch <wk@gnupg.org>
|
|
---
|
|
gtk+-2/pinentry-gtk-2.c | 10 ++++++++--
|
|
1 file changed, 8 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/gtk+-2/pinentry-gtk-2.c b/gtk+-2/pinentry-gtk-2.c
|
|
index 473c4aa..e37601f 100644
|
|
--- a/gtk+-2/pinentry-gtk-2.c
|
|
+++ b/gtk+-2/pinentry-gtk-2.c
|
|
@@ -203,7 +203,12 @@ grab_pointer (GtkWidget *win, GdkEvent *event, gpointer data)
|
|
(void)data;
|
|
|
|
/* Change the cursor for the duration of the grab to indicate that
|
|
- something is going on. */
|
|
+ * something is going on. The fvwm window manager grabs the pointer
|
|
+ * for a short time and thus we may end up with the already grabbed
|
|
+ * error code. Actually this error code should be used to detect a
|
|
+ * malicious grabbing application but with fvwm this renders
|
|
+ * Pinentry only unusable. Thus we try again several times also for
|
|
+ * that error code. See Debian bug 850708 for details. */
|
|
/* XXX: It would be nice to have a key cursor, unfortunately there
|
|
is none readily available. */
|
|
cursor = gdk_cursor_new_for_display (gtk_widget_get_display (win),
|
|
@@ -215,7 +220,8 @@ grab_pointer (GtkWidget *win, GdkEvent *event, gpointer data)
|
|
NULL /* confine to */,
|
|
cursor,
|
|
gdk_event_get_time (event));
|
|
- while (tries++ < max_tries && err == GDK_GRAB_NOT_VIEWABLE);
|
|
+ while (tries++ < max_tries && (err == GDK_GRAB_NOT_VIEWABLE
|
|
+ || err == GDK_GRAB_ALREADY_GRABBED));
|
|
|
|
if (err)
|
|
{
|
|
--
|
|
2.13.6
|
|
|