summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <matthiasc@src.gnome.org>2008-11-15 00:33:26 +0000
committerMatthias Clasen <matthiasc@src.gnome.org>2008-11-15 00:33:26 +0000
commitb01062ec911053778cdb48f926238f748178d7c8 (patch)
tree23f67508bd9ddea632357a6e99985fc55f74da4e
parent2da67f5c8562048739d17bf81af10f6193fd1258 (diff)
downloadgdk-pixbuf-b01062ec911053778cdb48f926238f748178d7c8.tar.gz
Bug 541391 – Unfocussable Treeview swallows focus
* gtk/gtktreeview.c (grab_focus_and_unset_draw_keyfocus), (gtk_tree_view_focus): Honor GTK_WIDGET_CAN_FOCUS properly svn path=/branches/gtk-2-14/; revision=21789
-rw-r--r--ChangeLog10
-rw-r--r--gtk/gtktreeview.c5
2 files changed, 13 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index cb5b48c73..13f5d471f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2008-11-14 Matthias Clasen <mclasen@redhat.com>
+
+ Merged from trunk:
+
+ Bug 541391 – Unfocussable Treeview swallows focus
+
+ * gtk/gtktreeview.c (grab_focus_and_unset_draw_keyfocus),
+ (gtk_tree_view_focus): Honor GTK_WIDGET_CAN_FOCUS properly.
+ Patch by Christian Dywan.
+
2008-11-05 Richard Hult <richard@imendio.com>
Merged from trunk:
diff --git a/gtk/gtktreeview.c b/gtk/gtktreeview.c
index 3815127f7..77fb9d759 100644
--- a/gtk/gtktreeview.c
+++ b/gtk/gtktreeview.c
@@ -2461,7 +2461,7 @@ gtk_tree_view_size_allocate (GtkWidget *widget,
static void
grab_focus_and_unset_draw_keyfocus (GtkTreeView *tree_view)
{
- if (!GTK_WIDGET_HAS_FOCUS (tree_view))
+ if (GTK_WIDGET_CAN_FOCUS (tree_view) && !GTK_WIDGET_HAS_FOCUS (tree_view))
gtk_widget_grab_focus (GTK_WIDGET (tree_view));
GTK_TREE_VIEW_UNSET_FLAG (tree_view, GTK_TREE_VIEW_DRAW_KEYFOCUS);
}
@@ -7841,7 +7841,8 @@ gtk_tree_view_focus (GtkWidget *widget,
GtkContainer *container = GTK_CONTAINER (widget);
GtkWidget *focus_child;
- if (!GTK_WIDGET_IS_SENSITIVE (container))
+ if (!GTK_WIDGET_IS_SENSITIVE (container) ||
+ !GTK_WIDGET_CAN_FOCUS (widget))
return FALSE;
focus_child = container->focus_child;