]> Pileus Git - ~andy/gtk/commitdiff
Merged from stable.
authorKristian Rietveld <kris@gtk.org>
Thu, 29 May 2003 16:28:42 +0000 (16:28 +0000)
committerKristian Rietveld <kristian@src.gnome.org>
Thu, 29 May 2003 16:28:42 +0000 (16:28 +0000)
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).

ChangeLog
ChangeLog.pre-2-10
ChangeLog.pre-2-4
ChangeLog.pre-2-6
ChangeLog.pre-2-8
gtk/gtktreeview.c

index 2c1ebd5806add2162b247775a2b7e3307a1ee30a..9bedfadae3e971b8e350a815f455fc22fe4cfa51 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+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.
index 2c1ebd5806add2162b247775a2b7e3307a1ee30a..9bedfadae3e971b8e350a815f455fc22fe4cfa51 100644 (file)
@@ -1,3 +1,11 @@
+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.
index 2c1ebd5806add2162b247775a2b7e3307a1ee30a..9bedfadae3e971b8e350a815f455fc22fe4cfa51 100644 (file)
@@ -1,3 +1,11 @@
+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.
index 2c1ebd5806add2162b247775a2b7e3307a1ee30a..9bedfadae3e971b8e350a815f455fc22fe4cfa51 100644 (file)
@@ -1,3 +1,11 @@
+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.
index 2c1ebd5806add2162b247775a2b7e3307a1ee30a..9bedfadae3e971b8e350a815f455fc22fe4cfa51 100644 (file)
@@ -1,3 +1,11 @@
+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.
index c8d188e904a3c0bc012002229c0d54f10fdbbcbb..f971530c37f89f5651ea8893c7ae298321785bf1 100644 (file)
@@ -1897,6 +1897,18 @@ gtk_tree_view_button_press (GtkWidget      *widget,
                        "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)
     {
@@ -1915,10 +1927,6 @@ gtk_tree_view_button_press (GtkWidget      *widget,
       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))