+Thu May 29 18:23:01 2003 Kristian Rietveld <kris@gtk.org>
+
+ Merged from stable.
+
+ * gtk/gtktreeview.c (gtk_tree_view_button_press): put the focus
+ grab separate, the user might clear the tree in the focus-in
+ callback. (Fixes #113086, testcase from Felipe Heidrich).
+
Thu May 29 18:06:26 2003 Kristian Rietveld <kris@gtk.org>
Merged from stable.
+Thu May 29 18:23:01 2003 Kristian Rietveld <kris@gtk.org>
+
+ Merged from stable.
+
+ * gtk/gtktreeview.c (gtk_tree_view_button_press): put the focus
+ grab separate, the user might clear the tree in the focus-in
+ callback. (Fixes #113086, testcase from Felipe Heidrich).
+
Thu May 29 18:06:26 2003 Kristian Rietveld <kris@gtk.org>
Merged from stable.
+Thu May 29 18:23:01 2003 Kristian Rietveld <kris@gtk.org>
+
+ Merged from stable.
+
+ * gtk/gtktreeview.c (gtk_tree_view_button_press): put the focus
+ grab separate, the user might clear the tree in the focus-in
+ callback. (Fixes #113086, testcase from Felipe Heidrich).
+
Thu May 29 18:06:26 2003 Kristian Rietveld <kris@gtk.org>
Merged from stable.
+Thu May 29 18:23:01 2003 Kristian Rietveld <kris@gtk.org>
+
+ Merged from stable.
+
+ * gtk/gtktreeview.c (gtk_tree_view_button_press): put the focus
+ grab separate, the user might clear the tree in the focus-in
+ callback. (Fixes #113086, testcase from Felipe Heidrich).
+
Thu May 29 18:06:26 2003 Kristian Rietveld <kris@gtk.org>
Merged from stable.
+Thu May 29 18:23:01 2003 Kristian Rietveld <kris@gtk.org>
+
+ Merged from stable.
+
+ * gtk/gtktreeview.c (gtk_tree_view_button_press): put the focus
+ grab separate, the user might clear the tree in the focus-in
+ callback. (Fixes #113086, testcase from Felipe Heidrich).
+
Thu May 29 18:06:26 2003 Kristian Rietveld <kris@gtk.org>
Merged from stable.
"horizontal_separator", &horizontal_separator,
NULL);
+ /* put this separate, because the user might remove the latest
+ * treeview node in the focus-in-event callback. If so, the code
+ * flow won't enter the second if.
+ */
+ if (event->window == tree_view->priv->bin_window &&
+ tree_view->priv->tree != NULL)
+ {
+ if (!GTK_WIDGET_HAS_FOCUS (widget))
+ gtk_widget_grab_focus (widget);
+ GTK_TREE_VIEW_UNSET_FLAG (tree_view, GTK_TREE_VIEW_DRAW_KEYFOCUS);
+ }
+
if (event->window == tree_view->priv->bin_window &&
tree_view->priv->tree != NULL)
{
gboolean emit_row_activated = FALSE;
gboolean rtl;
- if (!GTK_WIDGET_HAS_FOCUS (widget))
- gtk_widget_grab_focus (widget);
- GTK_TREE_VIEW_UNSET_FLAG (tree_view, GTK_TREE_VIEW_DRAW_KEYFOCUS);
-
/* are we in an arrow? */
if (tree_view->priv->prelight_node &&
GTK_TREE_VIEW_FLAG_SET (tree_view, GTK_TREE_VIEW_ARROW_PRELIT))