]> Pileus Git - ~andy/gtk/commitdiff
Hide GtkTreeViewColumn buttons when header_window is not visible
authorKristian Rietveld <kris@gtk.org>
Thu, 23 Dec 2010 17:19:11 +0000 (18:19 +0100)
committerKristian Rietveld <kris@gtk.org>
Thu, 23 Dec 2010 17:19:56 +0000 (18:19 +0100)
gtk/gtktreeview.c
gtk/gtktreeviewcolumn.c

index bce916aaa64e0987a93b28abafb2241936dc62d5..e9f64e23dddcec676bba714bea4c16f9089445a2 100644 (file)
@@ -2128,6 +2128,9 @@ gtk_tree_view_map_buttons (GtkTreeView *tree_view)
          column = list->data;
          button = gtk_tree_view_column_get_button (column);
 
+          if (gtk_tree_view_column_get_visible (column) && button)
+            gtk_widget_show_now (button);
+
           if (gtk_widget_get_visible (button) &&
               !gtk_widget_get_mapped (button))
             gtk_widget_map (button);
@@ -11631,6 +11634,8 @@ gtk_tree_view_set_headers_visible (GtkTreeView *tree_view,
            {
              column = list->data;
              button = gtk_tree_view_column_get_button (column);
+
+              gtk_widget_hide (button);
              gtk_widget_unmap (button);
            }
          gdk_window_hide (tree_view->priv->header_window);
index 0147a4a8ca30f3a75afc9b1c9b11e55069e333b3..43f592183f36279c03cc91f91df0f3345c7d5834 100644 (file)
@@ -987,7 +987,9 @@ gtk_tree_view_column_update_button (GtkTreeViewColumn *tree_column)
     {
       if (priv->visible)
        {
-         gtk_widget_show_now (priv->button);
+          if (gdk_window_is_visible (_gtk_tree_view_get_header_window (GTK_TREE_VIEW (priv->tree_view))))
+            gtk_widget_show_now (priv->button);
+
          if (priv->window)
            {
              if (priv->resizable)
@@ -1327,9 +1329,6 @@ _gtk_tree_view_column_realize_button (GtkTreeViewColumn *column)
   g_return_if_fail (_gtk_tree_view_get_header_window (tree_view) != NULL);
   gtk_widget_set_parent_window (priv->button, _gtk_tree_view_get_header_window (tree_view));
 
-  if (priv->visible)
-    gtk_widget_show (priv->button);
-
   attr.window_type = GDK_WINDOW_CHILD;
   attr.wclass = GDK_INPUT_ONLY;
   attr.visual = gtk_widget_get_visual (GTK_WIDGET (tree_view));