From d408b79dba47e4392a9d13aff1660a1e483a765c Mon Sep 17 00:00:00 2001 From: Jussi Kukkonen Date: Tue, 4 Oct 2016 16:16:42 +0300 Subject: gtk+3: Backport treeview focus fix Treeview did not grab focus properly on mouse click, leading to e.g. multifile selection with click/shift-click not working in the filechooser. Backport a fix. Fixes [YOCTO #10273]. Signed-off-by: Jussi Kukkonen Signed-off-by: Richard Purdie --- ...Redo-focus-handling-in-treeview-once-more.patch | 39 ++++++++++++++++++++++ meta/recipes-gnome/gtk+/gtk+3_3.20.9.bb | 1 + 2 files changed, 40 insertions(+) create mode 100644 meta/recipes-gnome/gtk+/gtk+3/0001-Redo-focus-handling-in-treeview-once-more.patch (limited to 'meta/recipes-gnome/gtk+') diff --git a/meta/recipes-gnome/gtk+/gtk+3/0001-Redo-focus-handling-in-treeview-once-more.patch b/meta/recipes-gnome/gtk+/gtk+3/0001-Redo-focus-handling-in-treeview-once-more.patch new file mode 100644 index 0000000000..e819add889 --- /dev/null +++ b/meta/recipes-gnome/gtk+/gtk+3/0001-Redo-focus-handling-in-treeview-once-more.patch @@ -0,0 +1,39 @@ +Upstream-Status: Backport [29faa2db] +Signed-off-by: Jussi Kukkonen + + +From 29faa2db44b04b9cf7f4d96e32691f424490c730 Mon Sep 17 00:00:00 2001 +From: Matthias Clasen +Date: Sun, 11 Sep 2016 11:47:55 -0400 +Subject: [PATCH] Redo focus handling in treeview once more + +The fix for bug 767468 had some unintended side-effects. This is +an attempt at doing the same fix (don't grab focus when we are +grab-shadowed), while avoiding the breakage, by using GTK+'s +internal tracking for grab-shadowed-ness. + +https://bugzilla.gnome.org/show_bug.cgi?id=770508 +--- + gtk/gtktreeview.c | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/gtk/gtktreeview.c b/gtk/gtktreeview.c +index a7463cc..73d3557 100644 +--- a/gtk/gtktreeview.c ++++ b/gtk/gtktreeview.c +@@ -3050,11 +3050,10 @@ static void + grab_focus_and_unset_draw_keyfocus (GtkTreeView *tree_view) + { + GtkWidget *widget = GTK_WIDGET (tree_view); +- GtkWidget *grab_widget = gtk_grab_get_current (); + + if (gtk_widget_get_can_focus (widget) && + !gtk_widget_has_focus (widget) && +- (!grab_widget || grab_widget == widget)) ++ !_gtk_widget_get_shadowed (widget)) + gtk_widget_grab_focus (widget); + + tree_view->priv->draw_keyfocus = 0; +-- +2.9.3 + diff --git a/meta/recipes-gnome/gtk+/gtk+3_3.20.9.bb b/meta/recipes-gnome/gtk+/gtk+3_3.20.9.bb index 9a0bfc4ba6..38e095ab9f 100644 --- a/meta/recipes-gnome/gtk+/gtk+3_3.20.9.bb +++ b/meta/recipes-gnome/gtk+/gtk+3_3.20.9.bb @@ -7,6 +7,7 @@ SRC_URI = "http://ftp.gnome.org/pub/gnome/sources/gtk+/${MAJ_VER}/gtk+-${PV}.tar file://0002-Do-not-try-to-initialize-GL-without-libGL.patch \ file://0003-Add-disable-opengl-configure-option.patch \ file://0004-configure.ac-Fix-wayland-protocols-path.patch \ + file://0001-Redo-focus-handling-in-treeview-once-more.patch \ " SRC_URI[md5sum] = "cc76cac5e18c772c6784bf19a3dff08b" SRC_URI[sha256sum] = "83a609ba2f3424b5509e73967c49c67833af466d6f91081b24ee5c64fce6ac17" -- cgit 1.2.3-korg