* gtk/gtktreeview.c (grab_focus_and_unset_draw_keyfocus),
(gtk_tree_view_focus): Honor GTK_WIDGET_CAN_FOCUS properly
svn path=/trunk/; revision=21507
+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
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);
}
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;