* Boston, MA 02111-1307, USA.
*/
+#include <config.h>
#include <string.h>
#include "gtktreeviewcolumn.h"
#include "gtktreeview.h"
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
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;
tree_column->tree_view,
&rtl_background_area,
&rtl_cell_area,
- expose_area,
+ &real_expose_area,
flags);
}
tree_column->tree_view,
&rtl_background_area,
&rtl_cell_area,
- expose_area,
+ &real_expose_area,
flags);
}
/* FOCUS */
gtk_paint_focus (tree_column->tree_view->style,
window,
cell_state,
- NULL,
+ cell_area,
tree_column->tree_view,
"treeview",
focus_rectangle.x,