Package: release.debian.org Severity: normal Tags: jessie User: release.debian....@packages.debian.org Usertags: pu
Hello, In bug #847438 it was reported that in gtk2 applications, there is a not-so-rare situation with menus, in which the focus gets in a state that prevents any keyboard shortcut from working at all. This means that to get out of this situation, blind people have to use the mouse to blindly click somewhere, with the hope of not clicking something bad. Or just abrutly reboot the computer. This was fixed very early in the gtk3 branch, the gtk2 branch got a backport only recently (see https://bugzilla.gnome.org/show_bug.cgi?id=554057 for the upstream bugtracking). The backport was included in Sid on January 26th and got into testing on February 6th. I'm now proposing to include the fix in Jessie too. I have attached the debdiff that I plan to upload. Samuel -- System Information: Debian Release: 9.0 APT prefers testing APT policy: (990, 'testing'), (500, 'unstable-debug'), (500, 'testing-debug'), (500, 'buildd-unstable'), (500, 'unstable'), (500, 'stable'), (500, 'oldstable'), (1, 'experimental-debug'), (1, 'buildd-experimental'), (1, 'experimental') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 4.10.0 (SMP w/4 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)
diff -Nru gtk+2.0-2.24.25/debian/changelog gtk+2.0-2.24.25/debian/changelog --- gtk+2.0-2.24.25/debian/changelog 2016-03-17 23:20:16.000000000 +0100 +++ gtk+2.0-2.24.25/debian/changelog 2017-03-20 23:08:36.000000000 +0100 @@ -1,3 +1,11 @@ +gtk+2.0 (2.24.25-3+deb8u2) jessie; urgency=medium + + * debian/patches/100-GtkMenuShell-always-activate-menu-shells.patch: + + Backport patch from GTK+3 to fix stuck grabs in some situations. + Thanks Colomban Wendling. Closes: #847438. + + -- Samuel Thibault <sthiba...@debian.org> Mon, 20 Mar 2017 23:08:36 +0100 + gtk+2.0 (2.24.25-3+deb8u1) jessie; urgency=medium * CVE-2013-7447 (Closes: #799275) diff -Nru gtk+2.0-2.24.25/debian/patches/100-GtkMenuShell-always-activate-menu-shells.patch gtk+2.0-2.24.25/debian/patches/100-GtkMenuShell-always-activate-menu-shells.patch --- gtk+2.0-2.24.25/debian/patches/100-GtkMenuShell-always-activate-menu-shells.patch 1970-01-01 01:00:00.000000000 +0100 +++ gtk+2.0-2.24.25/debian/patches/100-GtkMenuShell-always-activate-menu-shells.patch 2017-03-20 23:06:04.000000000 +0100 @@ -0,0 +1,92 @@ +>From 34caf388443c7b77b33bdb2c8bbc59faf9affa82 Mon Sep 17 00:00:00 2001 +From: Colomban Wendling <cwendl...@hypra.fr> +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 + + diff -Nru gtk+2.0-2.24.25/debian/patches/series gtk+2.0-2.24.25/debian/patches/series --- gtk+2.0-2.24.25/debian/patches/series 2016-03-17 23:17:03.000000000 +0100 +++ gtk+2.0-2.24.25/debian/patches/series 2017-03-20 23:08:36.000000000 +0100 @@ -15,3 +15,4 @@ 065_gir_set_packages.patch 098_multiarch_module_path.patch 099_CVE-2013-7447.patch +100-GtkMenuShell-always-activate-menu-shells.patch