summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKristian Fiskerstrand <k_f@gentoo.org>2017-10-16 23:14:28 +0200
committerKristian Fiskerstrand <k_f@gentoo.org>2017-10-16 23:14:43 +0200
commit2fabf9cabaf1f4bab9f924afa116d1c7d84680b9 (patch)
tree1f1f9631c6836129508f6ff8c4953188a0a6fb24 /app-crypt
parentdev-perl/Params-ValidationCompiler: keyworded 0.240.0 for ia64, bug #633934 (diff)
downloadgentoo-2fabf9cabaf1f4bab9f924afa116d1c7d84680b9.tar.gz
gentoo-2fabf9cabaf1f4bab9f924afa116d1c7d84680b9.tar.bz2
gentoo-2fabf9cabaf1f4bab9f924afa116d1c7d84680b9.zip
app-crypt/pinentry: Fix grabbing issue in awesomewm
Bug: https://bugs.gentoo.org/609678 Package-Manager: Portage-2.3.8, Repoman-2.3.3
Diffstat (limited to 'app-crypt')
-rw-r--r--app-crypt/pinentry/files/pinentry-1.0.0-Disable-tooltips-in-keyboard-grabbing-mode.patch47
-rw-r--r--app-crypt/pinentry/files/pinentry-1.0.0-gtk2-Fix-a-problem-with-fvwm.patch47
-rw-r--r--app-crypt/pinentry/pinentry-1.0.0-r2.ebuild (renamed from app-crypt/pinentry/pinentry-1.0.0-r1.ebuild)2
3 files changed, 96 insertions, 0 deletions
diff --git a/app-crypt/pinentry/files/pinentry-1.0.0-Disable-tooltips-in-keyboard-grabbing-mode.patch b/app-crypt/pinentry/files/pinentry-1.0.0-Disable-tooltips-in-keyboard-grabbing-mode.patch
new file mode 100644
index 000000000000..7724d1beae8c
--- /dev/null
+++ b/app-crypt/pinentry/files/pinentry-1.0.0-Disable-tooltips-in-keyboard-grabbing-mode.patch
@@ -0,0 +1,47 @@
+From 1590b664d88be8386a4664c2994b685187d1eb25 Mon Sep 17 00:00:00 2001
+From: Damien Goutte-Gattat <dgouttegattat@incenp.org>
+Date: Thu, 3 Aug 2017 22:56:49 +0200
+Subject: [PATCH 1/6] gtk: Disable tooltips in keyboard-grabbing mode.
+
+* gtk+-2:/pinentry-gtk-2.c (show_hide_button): Do not show the
+tooltip if we attempt to grab the keyboard.
+(create_window): Likewise.
+--
+
+For unclear reasons, those tooltips may interfere with grabbing
+under some tiling window managers.
+
+GnuPG-bug-id: 3297
+Signed-off-by: Damien Goutte-Gattat <dgouttegattat@incenp.org>
+---
+ gtk+-2/pinentry-gtk-2.c | 7 +++++--
+ 1 file changed, 5 insertions(+), 2 deletions(-)
+
+diff --git a/gtk+-2/pinentry-gtk-2.c b/gtk+-2/pinentry-gtk-2.c
+index d467ec5..f17a702 100644
+--- a/gtk+-2/pinentry-gtk-2.c
++++ b/gtk+-2/pinentry-gtk-2.c
+@@ -516,7 +516,10 @@ show_hide_button_toggled (GtkWidget *widget, gpointer data)
+ }
+
+ gtk_label_set_markup (GTK_LABEL(label), text);
+- gtk_widget_set_tooltip_text (GTK_WIDGET(button), tooltip);
++ if (!pinentry->grab)
++ {
++ gtk_widget_set_tooltip_text (GTK_WIDGET(button), tooltip);
++ }
+ g_free (tooltip);
+ }
+
+@@ -736,7 +739,7 @@ create_window (pinentry_t ctx)
+ gtk_progress_bar_set_text (GTK_PROGRESS_BAR (qualitybar),
+ QUALITYBAR_EMPTY_TEXT);
+ gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (qualitybar), 0.0);
+- if (pinentry->quality_bar_tt)
++ if (pinentry->quality_bar_tt && !pinentry->grab)
+ {
+ #if !GTK_CHECK_VERSION (2, 12, 0)
+ gtk_tooltips_set_tip (GTK_TOOLTIPS (tooltips), qualitybar,
+--
+2.13.6
+
diff --git a/app-crypt/pinentry/files/pinentry-1.0.0-gtk2-Fix-a-problem-with-fvwm.patch b/app-crypt/pinentry/files/pinentry-1.0.0-gtk2-Fix-a-problem-with-fvwm.patch
new file mode 100644
index 000000000000..f7476de1ff67
--- /dev/null
+++ b/app-crypt/pinentry/files/pinentry-1.0.0-gtk2-Fix-a-problem-with-fvwm.patch
@@ -0,0 +1,47 @@
+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
+
diff --git a/app-crypt/pinentry/pinentry-1.0.0-r1.ebuild b/app-crypt/pinentry/pinentry-1.0.0-r2.ebuild
index 23de2e2209d0..f26a7c9f5bc5 100644
--- a/app-crypt/pinentry/pinentry-1.0.0-r1.ebuild
+++ b/app-crypt/pinentry/pinentry-1.0.0-r2.ebuild
@@ -50,6 +50,8 @@ DOCS=( AUTHORS ChangeLog NEWS README THANKS TODO )
PATCHES=(
"${FILESDIR}/${PN}-0.8.2-ncurses.patch"
"${FILESDIR}/${P}-build.patch"
+ "${FILESDIR}/${P}-Disable-tooltips-in-keyboard-grabbing-mode.patch"
+ "${FILESDIR}/${P}-gtk2-Fix-a-problem-with-fvwm.patch"
)
src_prepare() {