Your message dated Thu, 26 Jan 2017 17:19:01 +0000
with message-id <[email protected]>
and subject line Bug#847438: fixed in gtk+2.0 2.24.31-2
has caused the Debian Bug report #847438,
regarding libgtk2.0-0: Keyboard grab not released after keyboard intractions 
with some menus
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
847438: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=847438
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: libgtk2.0-0
Version: 2.24.25-3+deb8u1
Severity: normal
Tags: upstream patch

Dear Maintainer,

In some cases, GTK will not release the keyboard grab after interacting with
menus, leading to the keyboard being unusable in any other app/widget (not
even WM/desktop shortcuts).  The grab can be force-released only by a mouse
interaction, rendering keyboard-only navigation impossible.  This is
especially problematic for people relying on accessibility features, but it
affects eveyone falling in the issue as normal input doesn't work anymore.

This issue is for example visible in mate-panel's main menu.

Upstream GTK report: https://bugzilla.gnome.org/show_bug.cgi?id=554057
It was against GTK3 in its early days, but affects GTK2 just the same.
Patch backporting the changs to GTK2 is available in comment #18:
https://bugzilla.gnome.org/show_bug.cgi?id=554057#c18
This report includes a simple test application that reproduces the issue.

Report on mate-panel: https://github.com/mate-desktop/mate-panel/issues/505

Please consider including this patch in order to fix keyboard grab lockup
at least when navigating mate-panel with the keyboard.

Regards,
Colomban


-- System Information:
Debian Release: 8.6
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 3.16.0-4-amd64 (SMP w/2 CPU cores)
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages libgtk2.0-0 depends on:
ii  libatk1.0-0          2.14.0-1
ii  libc6                2.19-18+deb8u6
ii  libcairo2            1.14.0-2.1+deb8u1
ii  libcups2             1.7.5-11+deb8u1
ii  libfontconfig1       2.11.0-6.3+deb8u1
ii  libfreetype6         2.5.2-3+deb8u1
ii  libgdk-pixbuf2.0-0   2.31.1-2+deb8u5
ii  libglib2.0-0         2.42.1-1+b1
ii  libgtk2.0-common     2.24.25-3+deb8u1
ii  libpango-1.0-0       1.36.8-3
ii  libpangocairo-1.0-0  1.36.8-3
ii  libpangoft2-1.0-0    1.36.8-3
ii  libx11-6             2:1.6.2-3
ii  libxcomposite1       1:0.4.4-1
ii  libxcursor1          1:1.1.14-1+b1
ii  libxdamage1          1:1.1.4-2+b1
ii  libxext6             2:1.3.3-1
ii  libxfixes3           1:5.0.1-2+b2
ii  libxi6               2:1.7.4-1+b2
ii  libxinerama1         2:1.1.3-1+b1
ii  libxrandr2           2:1.4.2-1+b1
ii  libxrender1          1:0.9.8-1+b1
ii  multiarch-support    2.19-18+deb8u6
ii  shared-mime-info     1.3-1

Versions of packages libgtk2.0-0 recommends:
ii  hicolor-icon-theme  0.13-1
ii  libgtk2.0-bin       2.24.25-3+deb8u1

Versions of packages libgtk2.0-0 suggests:
ii  gvfs             1.22.2-1
ii  librsvg2-common  2.40.5-1+deb8u2

-- no debconf information
>From 34caf388443c7b77b33bdb2c8bbc59faf9affa82 Mon Sep 17 00:00:00 2001
From: Colomban Wendling <[email protected]>
Date: Wed, 7 Dec 2016 15:49:03 +0100
Subject: [PATCH] GtkMenuShell: always 'activate' menu shells

Failing to do so can leave us with a stuck grab in some cases.
https://bugzilla.gnome.org/show_bug.cgi?id=554057

Cherry-picks f5eee56b56e2f371a0dc659f2d402b0cfc1c42c2,
9833fbd77a63ee5dd8f6b5519831db2a4b29ebb9 and
4eac7f24177d947852574f11ef483b1c43fd17e5 from GTK3.
---
 gtk/gtkmenubar.c   | 1 -
 gtk/gtkmenuitem.c  | 2 --
 gtk/gtkmenushell.c | 8 +++++---
 gtk/gtkmenushell.h | 1 -
 4 files changed, 5 insertions(+), 7 deletions(-)

diff --git a/gtk/gtkmenubar.c b/gtk/gtkmenubar.c
index 05de45c..e3b9554 100644
--- a/gtk/gtkmenubar.c
+++ b/gtk/gtkmenubar.c
@@ -618,7 +618,6 @@ window_key_press_handler (GtkWidget   *widget,
 	      GtkMenuShell *menu_shell = GTK_MENU_SHELL (menubars->data);
 
               _gtk_menu_shell_set_keyboard_mode (menu_shell, TRUE);
-	      _gtk_menu_shell_activate (menu_shell);
 	      gtk_menu_shell_select_first (menu_shell, FALSE);
 	      
 	      g_list_free (menubars);
diff --git a/gtk/gtkmenuitem.c b/gtk/gtkmenuitem.c
index 8f23b75..b706c7d 100644
--- a/gtk/gtkmenuitem.c
+++ b/gtk/gtkmenuitem.c
@@ -1433,8 +1433,6 @@ gtk_real_menu_item_activate_item (GtkMenuItem *menu_item)
 	{
 	  GtkMenuShell *menu_shell = GTK_MENU_SHELL (widget->parent);
 
-	  _gtk_menu_shell_activate (menu_shell);
-
 	  gtk_menu_shell_select_item (GTK_MENU_SHELL (widget->parent), widget);
 	  _gtk_menu_item_popup_submenu (widget, FALSE);
 
diff --git a/gtk/gtkmenushell.c b/gtk/gtkmenushell.c
index a7ad7b5..48de6a8 100644
--- a/gtk/gtkmenushell.c
+++ b/gtk/gtkmenushell.c
@@ -563,8 +563,8 @@ gtk_menu_shell_realize (GtkWidget *widget)
   gtk_style_set_background (widget->style, widget->window, GTK_STATE_NORMAL);
 }
 
-void
-_gtk_menu_shell_activate (GtkMenuShell *menu_shell)
+static void
+gtk_menu_shell_activate (GtkMenuShell *menu_shell)
 {
   if (!menu_shell->active)
     {
@@ -609,7 +609,7 @@ gtk_menu_shell_button_press (GtkWidget      *widget,
 
   if (!menu_shell->active || !menu_shell->button)
     {
-      _gtk_menu_shell_activate (menu_shell);
+      gtk_menu_shell_activate (menu_shell);
 
       menu_shell->button = event->button;
 
@@ -1204,6 +1204,8 @@ gtk_menu_shell_real_select_item (GtkMenuShell *menu_shell,
       return;
     }
 
+  gtk_menu_shell_activate (menu_shell);
+
   menu_shell->active_menu_item = menu_item;
   if (pack_dir == GTK_PACK_DIRECTION_TTB || pack_dir == GTK_PACK_DIRECTION_BTT)
     _gtk_menu_item_set_placement (GTK_MENU_ITEM (menu_shell->active_menu_item),
diff --git a/gtk/gtkmenushell.h b/gtk/gtkmenushell.h
index 7672a2b..2d90c33 100644
--- a/gtk/gtkmenushell.h
+++ b/gtk/gtkmenushell.h
@@ -116,7 +116,6 @@ void  gtk_menu_shell_select_first      (GtkMenuShell *menu_shell,
 					gboolean      search_sensitive);
 void _gtk_menu_shell_select_last       (GtkMenuShell *menu_shell,
 					gboolean      search_sensitive);
-void  _gtk_menu_shell_activate         (GtkMenuShell *menu_shell);
 gint  _gtk_menu_shell_get_popup_delay  (GtkMenuShell *menu_shell);
 void  gtk_menu_shell_cancel            (GtkMenuShell *menu_shell);
 
-- 
2.1.4



--- End Message ---
--- Begin Message ---
Source: gtk+2.0
Source-Version: 2.24.31-2

We believe that the bug you reported is fixed in the latest version of
gtk+2.0, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to [email protected],
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Emilio Pozuelo Monfort <[email protected]> (supplier of updated gtk+2.0 package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [email protected])


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Format: 1.8
Date: Thu, 26 Jan 2017 17:59:51 +0100
Source: gtk+2.0
Binary: libgtk2.0-0 libgtk2.0-0-udeb libgtk2.0-common libgtk2.0-bin 
libgtk2.0-dev libgtk2.0-0-dbg libgtk2.0-doc gtk2.0-examples gtk2-engines-pixbuf 
gir1.2-gtk-2.0 libgail18 libgail18-udeb libgail-common libgail-dev libgail-dbg 
libgail-doc
Architecture: source
Version: 2.24.31-2
Distribution: unstable
Urgency: medium
Maintainer: Debian GNOME Maintainers 
<[email protected]>
Changed-By: Emilio Pozuelo Monfort <[email protected]>
Description:
 gir1.2-gtk-2.0 - GTK+ graphical user interface library -- gir bindings
 gtk2-engines-pixbuf - pixbuf-based theme for GTK+ 2.x
 gtk2.0-examples - example files for GTK+ 2.0
 libgail-common - GNOME Accessibility Implementation Library -- common modules
 libgail-dbg - Gail libraries and debugging symbols
 libgail-dev - GNOME Accessibility Implementation Library -- development files
 libgail-doc - documentation files of the Gail library
 libgail18  - GNOME Accessibility Implementation Library -- shared libraries
 libgail18-udeb - GNOME Accessibility Implementation Library -- shared 
libraries (udeb)
 libgtk2.0-0 - GTK+ graphical user interface library
 libgtk2.0-0-dbg - GTK+ libraries and debugging symbols
 libgtk2.0-0-udeb - GTK+ graphical user interface library - minimal runtime 
(udeb)
 libgtk2.0-bin - programs for the GTK+ graphical user interface library
 libgtk2.0-common - common files for the GTK+ graphical user interface library
 libgtk2.0-dev - development files for the GTK+ library
 libgtk2.0-doc - documentation for the GTK+ graphical user interface library
Closes: 847438 852401
Changes:
 gtk+2.0 (2.24.31-2) unstable; urgency=medium
 .
   * debian/patches/0001-Don-t-use-guint32-with-XChangeProperty.patch:
     + Backport patch from GTK+3 to fix unaligned access on sparc64.
       Thanks James Clarke. Closes: #852401.
   * debian/patches/0002-GtkMenuShell-always-activate-menu-shells.patch:
     + Backport patch from GTK+3 to fix stuck grabs in some situations.
       Thanks Colomban Wendling. Closes: #847438.
Checksums-Sha1:
 3329d4db36e1016b3de7b6932414b80292e53f26 3839 gtk+2.0_2.24.31-2.dsc
 c3d828135994a52cc9428a60175bd2b294656611 12805344 gtk+2.0_2.24.31.orig.tar.xz
 b038ead0051caeb7202fc5fe3e87fe026be6afe0 87400 gtk+2.0_2.24.31-2.debian.tar.xz
Checksums-Sha256:
 1588a80a0f8ef6b1ddeb92c629fc9da1930e13e5bba5cb0f7bbbee335e161d09 3839 
gtk+2.0_2.24.31-2.dsc
 68c1922732c7efc08df4656a5366dcc3afdc8791513400dac276009b40954658 12805344 
gtk+2.0_2.24.31.orig.tar.xz
 56f1296c0f6fc3c319abee130fbd6c776b502ee53d8c8709ea42cd0f98b9d130 87400 
gtk+2.0_2.24.31-2.debian.tar.xz
Files:
 c4f94f554df291cfc7034d258007dcdd 3839 libs optional gtk+2.0_2.24.31-2.dsc
 526a1008586094a2cbb4592fd3f9ee10 12805344 libs optional 
gtk+2.0_2.24.31.orig.tar.xz
 6e0ef7e508c73a5ee72fd1fdb7ab036f 87400 libs optional 
gtk+2.0_2.24.31-2.debian.tar.xz

-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEEcJymx+vmJZxd92Q+nUbEiOQ2gwIFAliKKy8ACgkQnUbEiOQ2
gwJhmQ//YtGlFboKqrYM3gSjNEtFDlzBGF9nmHlVNq2q5bUGpUL82j2YHWzu/ms0
xjnq8naRcY8sF0+3Lzo0zXKfNKD66XTBEpTMkjNzRyvf5lPA80mv0MRnackJeyo2
QYToBnzsD6oarK3oKn5EV34ZCABIcfkexNB6NhGDz/bPS42qfz8sjujr5NjOwfG3
DB/CcHEtCASitJvnNfGxTrrKagRFl/jcKuyN/wYxxLNmiBFvcUQF7ULWhzybgDn6
D3LTWHZkrV42lTAtXjlUOBHJkQghEbMIHNFPFDWn4qonxFj4/6kzV7pLmJUSMWzG
g2R5KXP1QqbFq+xz/l9SC6rN9fC77k4rFK+UvNjVh0jIFrH9zrn4yPyflnv1xecz
OOiUqjZPMbaWA8MpmFrmw+51cE+e3iBT74N+0nqP9tnZ9qLWE2tj536KHdglyavY
DyXVLqM5mOZXDrzM99RMoNlNJ5a0TdF0oPApjkOKLz9lGQ/rL5tJGk8uv6G8M5QC
Y4JiUI8lMFxAv/Zafk1j8zfKb42PFmgWH3bdC7ajrYMfzr0SJu/rENutHssPNbuv
Q3sY3KQRIoIIEQ32qp8GyuUJKIsNNaYQBCOzBR34Fu2hx5NU/+jjB2eYGUEVjgEz
nJuYR6Hb7Ib4ruMpl7NH3yWErjDgFmSdl19pVkSXNSl936E3RC8=
=mb3b
-----END PGP SIGNATURE-----

--- End Message ---

Reply via email to