summaryrefslogtreecommitdiff
path: root/gtk/gtktreeviewcolumn.c
diff options
context:
space:
mode:
authorKristian Rietveld <kris@gtk.org>2002-02-19 18:21:50 +0000
committerKristian Rietveld <kristian@src.gnome.org>2002-02-19 18:21:50 +0000
commit601302c7a308664c09bc5ee2e23621b34747a252 (patch)
tree106d844ecb8f11ae666d15cf6d3f5ebe439bbf34 /gtk/gtktreeviewcolumn.c
parenta255d9cd01ecfee761cf03e746a864ab6e735e51 (diff)
downloadgdk-pixbuf-601302c7a308664c09bc5ee2e23621b34747a252.tar.gz
change gtk_tree_view_column_cell_render, gtk_tree_view_column_cell_focus,
Tue Feb 19 17:36:31 2002 Kristian Rietveld <kris@gtk.org> * gtktreeprivate.h, gtktreeviewcolumn.[ch], gtktreeview.c: change gtk_tree_view_column_cell_render, gtk_tree_view_column_cell_focus, gtk_tree_view_column_cell_draw_focus and gtk_tree_view_column_cell_set_dirty to be private functions. * gtktreeviewcolumn.[ch]: add install_handler argument to _cell_set_dirty to control if _mark_rows_col_dirty (which calls install_presize_handler) gets called, set widths correctly so autosizing works (#71870) * gtktreeview.c (gtk_tree_view_column_autosize): new function, (gtk_tree_view_button_press): make double click on column separator resize the row (#71870) (gtk_tree_view_get_dest_row_at_pos): change DnD threshold to 33% (#71869, suggestion by Anders Carlsson)
Diffstat (limited to 'gtk/gtktreeviewcolumn.c')
-rw-r--r--gtk/gtktreeviewcolumn.c48
1 files changed, 27 insertions, 21 deletions
diff --git a/gtk/gtktreeviewcolumn.c b/gtk/gtktreeviewcolumn.c
index df79c9b66..86d2af96e 100644
--- a/gtk/gtktreeviewcolumn.c
+++ b/gtk/gtktreeviewcolumn.c
@@ -1210,7 +1210,7 @@ gtk_tree_view_column_add_attribute (GtkTreeViewColumn *tree_column,
info->attributes = g_slist_prepend (info->attributes, g_strdup (attribute));
if (tree_column->tree_view)
- gtk_tree_view_column_cell_set_dirty (tree_column);
+ _gtk_tree_view_column_cell_set_dirty (tree_column, TRUE);
}
@@ -1304,7 +1304,7 @@ gtk_tree_view_column_set_cell_data_func (GtkTreeViewColumn *tree_column,
info->destroy = destroy;
if (tree_column->tree_view)
- gtk_tree_view_column_cell_set_dirty (tree_column);
+ _gtk_tree_view_column_cell_set_dirty (tree_column, TRUE);
}
@@ -1338,7 +1338,7 @@ gtk_tree_view_column_clear_attributes (GtkTreeViewColumn *tree_column,
info->attributes = NULL;
if (tree_column->tree_view)
- gtk_tree_view_column_cell_set_dirty (tree_column);
+ _gtk_tree_view_column_cell_set_dirty (tree_column, TRUE);
}
@@ -1362,7 +1362,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);
+ _gtk_tree_view_column_cell_set_dirty (tree_column, TRUE);
}
/**
@@ -2319,12 +2319,12 @@ gtk_tree_view_column_cell_render_or_focus (GtkTreeViewColumn *tree_column,
* #GtkTreeView.
**/
void
-gtk_tree_view_column_cell_render (GtkTreeViewColumn *tree_column,
- GdkWindow *window,
- GdkRectangle *background_area,
- GdkRectangle *cell_area,
- GdkRectangle *expose_area,
- guint flags)
+_gtk_tree_view_column_cell_render (GtkTreeViewColumn *tree_column,
+ GdkWindow *window,
+ GdkRectangle *background_area,
+ GdkRectangle *cell_area,
+ GdkRectangle *expose_area,
+ guint flags)
{
g_return_if_fail (GTK_IS_TREE_VIEW_COLUMN (tree_column));
g_return_if_fail (background_area != NULL);
@@ -2391,8 +2391,8 @@ _gtk_tree_view_column_cell_event (GtkTreeViewColumn *tree_column,
gboolean
-gtk_tree_view_column_cell_focus (GtkTreeViewColumn *tree_column,
- gint direction)
+_gtk_tree_view_column_cell_focus (GtkTreeViewColumn *tree_column,
+ gint direction)
{
if (GTK_TREE_VIEW (tree_column->tree_view)->priv->focus_column == tree_column)
return FALSE;
@@ -2400,12 +2400,12 @@ gtk_tree_view_column_cell_focus (GtkTreeViewColumn *tree_column,
}
void
-gtk_tree_view_column_cell_draw_focus (GtkTreeViewColumn *tree_column,
- GdkWindow *window,
- GdkRectangle *background_area,
- GdkRectangle *cell_area,
- GdkRectangle *expose_area,
- guint flags)
+_gtk_tree_view_column_cell_draw_focus (GtkTreeViewColumn *tree_column,
+ GdkWindow *window,
+ GdkRectangle *background_area,
+ GdkRectangle *cell_area,
+ GdkRectangle *expose_area,
+ guint flags)
{
gint focus_line_width;
GtkStateType cell_state;
@@ -2475,7 +2475,8 @@ gtk_tree_view_column_cell_is_visible (GtkTreeViewColumn *tree_column)
}
void
-gtk_tree_view_column_cell_set_dirty (GtkTreeViewColumn *tree_column)
+_gtk_tree_view_column_cell_set_dirty (GtkTreeViewColumn *tree_column,
+ gboolean install_handler)
{
GList *list;
@@ -2486,12 +2487,17 @@ gtk_tree_view_column_cell_set_dirty (GtkTreeViewColumn *tree_column)
info->requested_width = 0;
}
tree_column->dirty = TRUE;
- tree_column->requested_width = 0;
+ tree_column->resized_width = MAX (tree_column->requested_width, tree_column->button_request);
+ tree_column->requested_width = -1;
+ tree_column->width = 0;
if (tree_column->tree_view &&
GTK_WIDGET_REALIZED (tree_column->tree_view))
{
- _gtk_tree_view_install_mark_rows_col_dirty (GTK_TREE_VIEW (tree_column->tree_view));
+ if (install_handler)
+ _gtk_tree_view_install_mark_rows_col_dirty (GTK_TREE_VIEW (tree_column->tree_view));
+ else
+ GTK_TREE_VIEW (tree_column->tree_view)->priv->mark_rows_col_dirty = TRUE;
gtk_widget_queue_resize (tree_column->tree_view);
}
}