]> Pileus Git - ~andy/gtk/commitdiff
Bug 541391 – Unfocussable Treeview swallows focus
authorChristian Dywan <cdywan@src.gnome.org>
Wed, 24 Sep 2008 08:19:51 +0000 (08:19 +0000)
committerChristian Dywan <cdywan@src.gnome.org>
Wed, 24 Sep 2008 08:19:51 +0000 (08:19 +0000)
* gtk/gtktreeview.c (grab_focus_and_unset_draw_keyfocus),
(gtk_tree_view_focus): Honor GTK_WIDGET_CAN_FOCUS properly

svn path=/trunk/; revision=21507

ChangeLog
gtk/gtktreeview.c

index fc30df8b2f4e07ab7fe5b9bcce4b11abad804afe..bc659c2ec5b2961c7b214f83de9cb256bbdf1f65 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2008-09-24  Christian Dywan  <christian@imendio.com>
+
+       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
+
 2008-09-24  Denis Washington  <denisw@svn.gnome.org>
 
        * gtk/gtkiconview.c: draw focus as a rectangle around the
index d2b6bea282b4785bcb354469f0870b3ee364175e..d663e2664d14ca2ee2b6a5ea8de9579283df6b0b 100644 (file)
@@ -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);
 }
@@ -7837,7 +7837,7 @@ 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;