gtk_rb_tree_node_mark_dirty (tile);
}
+static void
+gtk_list_tile_set_type (GtkListTile *tile,
+ GtkListTileType type)
+{
+ if (tile->type == type)
+ return;
+
+ tile->type = type;
+ gtk_rb_tree_node_mark_dirty (tile);
+}
+
static void
gtk_list_item_tracker_unset_position (GtkListItemManager *self,
GtkListItemTracker *tracker)
case GTK_LIST_TILE_UNMATCHED_FOOTER:
if (header)
{
- header->type = GTK_LIST_TILE_REMOVED;
- gtk_rb_tree_node_mark_dirty (header);
- tile->type = GTK_LIST_TILE_REMOVED;
- gtk_rb_tree_node_mark_dirty (tile);
+ gtk_list_tile_set_type (header, GTK_LIST_TILE_REMOVED);
+ gtk_list_tile_set_type (tile, GTK_LIST_TILE_REMOVED);
header = NULL;
}
break;
tile->widget = NULL;
n_items -= tile->n_items;
tile->n_items = 0;
- tile->type = GTK_LIST_TILE_REMOVED;
- gtk_rb_tree_node_mark_dirty (tile);
+ gtk_list_tile_set_type (tile, GTK_LIST_TILE_REMOVED);
break;
default:
{
if (tile->type == GTK_LIST_TILE_FOOTER || tile->type == GTK_LIST_TILE_UNMATCHED_FOOTER)
{
- header->type = GTK_LIST_TILE_REMOVED;
- gtk_rb_tree_node_mark_dirty (header);
- tile->type = GTK_LIST_TILE_REMOVED;
- gtk_rb_tree_node_mark_dirty (tile);
+ gtk_list_tile_set_type (header, GTK_LIST_TILE_REMOVED);
+ gtk_list_tile_set_type (tile, GTK_LIST_TILE_REMOVED);
break;
}
}