Changed private api to allow setting a column dirty without resetting the width
(used when only the height is known to be dirty).
This commit is contained in:
@@ -464,6 +464,7 @@ void _gtk_tree_view_column_cell_draw_focus (GtkTreeViewColumn *tree_column,
|
||||
const GdkRectangle *expose_area,
|
||||
guint flags);
|
||||
void _gtk_tree_view_column_cell_set_dirty (GtkTreeViewColumn *tree_column,
|
||||
gboolean recalculate_width,
|
||||
gboolean install_handler);
|
||||
void _gtk_tree_view_column_get_neighbor_sizes (GtkTreeViewColumn *column,
|
||||
GtkCellRenderer *cell,
|
||||
|
||||
@@ -731,7 +731,7 @@ gtk_tree_view_column_cell_layout_add_attribute (GtkCellLayout *cell_layout,
|
||||
info->attributes = g_slist_prepend (info->attributes, g_strdup (attribute));
|
||||
|
||||
if (tree_column->tree_view)
|
||||
_gtk_tree_view_column_cell_set_dirty (tree_column, TRUE);
|
||||
_gtk_tree_view_column_cell_set_dirty (tree_column, TRUE, TRUE);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -763,7 +763,7 @@ gtk_tree_view_column_cell_layout_set_cell_data_func (GtkCellLayout *cell
|
||||
info->destroy = destroy;
|
||||
|
||||
if (column->tree_view)
|
||||
_gtk_tree_view_column_cell_set_dirty (column, TRUE);
|
||||
_gtk_tree_view_column_cell_set_dirty (column, TRUE, TRUE);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -826,7 +826,7 @@ gtk_tree_view_column_clear_attributes_by_info (GtkTreeViewColumn *tree_column,
|
||||
info->attributes = NULL;
|
||||
|
||||
if (tree_column->tree_view)
|
||||
_gtk_tree_view_column_cell_set_dirty (tree_column, TRUE);
|
||||
_gtk_tree_view_column_cell_set_dirty (tree_column, TRUE, TRUE);
|
||||
}
|
||||
|
||||
/* Helper functions
|
||||
@@ -1735,7 +1735,7 @@ gtk_tree_view_column_set_spacing (GtkTreeViewColumn *tree_column,
|
||||
|
||||
tree_column->spacing = spacing;
|
||||
if (tree_column->tree_view)
|
||||
_gtk_tree_view_column_cell_set_dirty (tree_column, TRUE);
|
||||
_gtk_tree_view_column_cell_set_dirty (tree_column, TRUE, TRUE);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1777,7 +1777,7 @@ gtk_tree_view_column_set_visible (GtkTreeViewColumn *tree_column,
|
||||
tree_column->visible = visible;
|
||||
|
||||
if (tree_column->visible)
|
||||
_gtk_tree_view_column_cell_set_dirty (tree_column, TRUE);
|
||||
_gtk_tree_view_column_cell_set_dirty (tree_column, TRUE, TRUE);
|
||||
|
||||
gtk_tree_view_column_update_button (tree_column);
|
||||
g_object_notify (G_OBJECT (tree_column), "visible");
|
||||
@@ -3483,6 +3483,7 @@ gtk_tree_view_column_focus_cell (GtkTreeViewColumn *tree_column,
|
||||
|
||||
void
|
||||
_gtk_tree_view_column_cell_set_dirty (GtkTreeViewColumn *tree_column,
|
||||
gboolean recalculate_width,
|
||||
gboolean install_handler)
|
||||
{
|
||||
GList *list;
|
||||
@@ -3490,16 +3491,20 @@ _gtk_tree_view_column_cell_set_dirty (GtkTreeViewColumn *tree_column,
|
||||
|
||||
priv = GTK_TREE_VIEW_COLUMN_GET_PRIVATE (tree_column);
|
||||
|
||||
for (list = tree_column->cell_list; list; list = list->next)
|
||||
{
|
||||
GtkTreeViewColumnCellInfo *info = (GtkTreeViewColumnCellInfo *) list->data;
|
||||
|
||||
info->requested_width = 0;
|
||||
info->natural_width = 0;
|
||||
}
|
||||
tree_column->dirty = TRUE;
|
||||
tree_column->requested_width = -1;
|
||||
priv->natural_width = -1;
|
||||
|
||||
if (recalculate_width)
|
||||
{
|
||||
for (list = tree_column->cell_list; list; list = list->next)
|
||||
{
|
||||
GtkTreeViewColumnCellInfo *info = (GtkTreeViewColumnCellInfo *) list->data;
|
||||
|
||||
info->requested_width = 0;
|
||||
info->natural_width = 0;
|
||||
}
|
||||
tree_column->requested_width = -1;
|
||||
priv->natural_width = -1;
|
||||
}
|
||||
|
||||
if (tree_column->tree_view &&
|
||||
gtk_widget_get_realized (tree_column->tree_view))
|
||||
@@ -3512,6 +3517,7 @@ _gtk_tree_view_column_cell_set_dirty (GtkTreeViewColumn *tree_column,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
_gtk_tree_view_column_start_editing (GtkTreeViewColumn *tree_column,
|
||||
GtkCellEditable *cell_editable)
|
||||
@@ -3644,7 +3650,7 @@ gtk_tree_view_column_queue_resize (GtkTreeViewColumn *tree_column)
|
||||
g_return_if_fail (GTK_IS_TREE_VIEW_COLUMN (tree_column));
|
||||
|
||||
if (tree_column->tree_view)
|
||||
_gtk_tree_view_column_cell_set_dirty (tree_column, TRUE);
|
||||
_gtk_tree_view_column_cell_set_dirty (tree_column, TRUE, TRUE);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user