]> Pileus Git - ~andy/gtk/blobdiff - gtk/gtktreeviewcolumn.c
Moved search entries into priv data.
[~andy/gtk] / gtk / gtktreeviewcolumn.c
index 222c6a46bd23a5e58ffb287f8f9774bb8e7462af..de3178b3c6a8df03c469e4e43e7b6d657b372f7d 100644 (file)
@@ -17,6 +17,7 @@
  * Boston, MA 02111-1307, USA.
  */
 
+#include <config.h>
 #include <string.h>
 #include "gtktreeviewcolumn.h"
 #include "gtktreeview.h"
@@ -656,23 +657,21 @@ gtk_tree_view_column_cell_layout_pack_end (GtkCellLayout   *cell_layout,
 static void
 gtk_tree_view_column_cell_layout_clear (GtkCellLayout *cell_layout)
 {
-  GList *list;
   GtkTreeViewColumn *column;
 
   g_return_if_fail (GTK_IS_TREE_VIEW_COLUMN (cell_layout));
   column = GTK_TREE_VIEW_COLUMN (cell_layout);
 
-  for (list = column->cell_list; list; list = list->next)
+  while (column->cell_list)
     {
-      GtkTreeViewColumnCellInfo *info = (GtkTreeViewColumnCellInfo *)list->data;
+      GtkTreeViewColumnCellInfo *info = (GtkTreeViewColumnCellInfo *)column->cell_list->data;
 
-      gtk_tree_view_column_clear_attributes (column, info->cell);
-      g_object_unref (info->cell);
+      gtk_tree_view_column_cell_layout_clear_attributes (cell_layout, info->cell);
+      g_object_unref (G_OBJECT (info->cell));
       g_free (info);
+      column->cell_list = g_list_delete_link (column->cell_list, 
+                                             column->cell_list);
     }
-
-  g_list_free (column->cell_list);
-  column->cell_list = NULL;
 }
 
 static void
@@ -2621,6 +2620,7 @@ gtk_tree_view_column_cell_process_action (GtkTreeViewColumn  *tree_column,
   GList *list;
   GdkRectangle real_cell_area;
   GdkRectangle real_background_area;
+  GdkRectangle real_expose_area = *cell_area;
   gint expand_cell_count = 0;
   gint full_requested_width = 0;
   gint extra_space;
@@ -2737,7 +2737,7 @@ gtk_tree_view_column_cell_process_action (GtkTreeViewColumn  *tree_column,
                                    tree_column->tree_view,
                                    &rtl_background_area,
                                    &rtl_cell_area,
-                                   expose_area,
+                                   &real_expose_area, 
                                    flags);
        }
 
@@ -2892,7 +2892,7 @@ gtk_tree_view_column_cell_process_action (GtkTreeViewColumn  *tree_column,
                                    tree_column->tree_view,
                                    &rtl_background_area,
                                    &rtl_cell_area,
-                                   expose_area,
+                                   &real_expose_area,
                                    flags);
        }
       /* FOCUS */
@@ -3350,7 +3350,7 @@ _gtk_tree_view_column_cell_draw_focus (GtkTreeViewColumn       *tree_column,
       gtk_paint_focus (tree_column->tree_view->style,
                       window,
                       cell_state,
-                      NULL,
+                      cell_area,
                       tree_column->tree_view,
                       "treeview",
                       focus_rectangle.x,