* 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.
This commit is contained in:
3
debian/changelog
vendored
3
debian/changelog
vendored
@ -3,6 +3,9 @@ gtk+2.0 (2.24.31-2) UNRELEASED; urgency=medium
|
|||||||
* debian/patches/0001-Don-t-use-guint32-with-XChangeProperty.patch:
|
* debian/patches/0001-Don-t-use-guint32-with-XChangeProperty.patch:
|
||||||
+ Backport patch from GTK+3 to fix unaligned access on sparc64.
|
+ Backport patch from GTK+3 to fix unaligned access on sparc64.
|
||||||
Thanks James Clarke. Closes: #852401.
|
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.
|
||||||
|
|
||||||
-- Emilio Pozuelo Monfort <pochu@debian.org> Thu, 26 Jan 2017 08:38:59 +0100
|
-- Emilio Pozuelo Monfort <pochu@debian.org> Thu, 26 Jan 2017 08:38:59 +0100
|
||||||
|
|
||||||
|
92
debian/patches/0002-GtkMenuShell-always-activate-menu-shells.patch
vendored
Normal file
92
debian/patches/0002-GtkMenuShell-always-activate-menu-shells.patch
vendored
Normal file
@ -0,0 +1,92 @@
|
|||||||
|
>From 34caf388443c7b77b33bdb2c8bbc59faf9affa82 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Colomban Wendling <cwendling@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
|
||||||
|
|
||||||
|
|
1
debian/patches/series
vendored
1
debian/patches/series
vendored
@ -11,3 +11,4 @@
|
|||||||
061_use_pdf_as_default_printing_standard.patch
|
061_use_pdf_as_default_printing_standard.patch
|
||||||
098_multiarch_module_path.patch
|
098_multiarch_module_path.patch
|
||||||
0001-Don-t-use-guint32-with-XChangeProperty.patch
|
0001-Don-t-use-guint32-with-XChangeProperty.patch
|
||||||
|
0002-GtkMenuShell-always-activate-menu-shells.patch
|
||||||
|
Reference in New Issue
Block a user