don't draw if label->layout is NULL due to a pending resize

2001-01-09  Havoc Pennington  <hp@redhat.com>

	* gtk/gtklabel.c (gtk_label_expose): don't draw if label->layout
	is NULL due to a pending resize

	* gtk/gtktreeview.c (gtk_tree_view_check_dirty): don't set the
	column width to values less than 1

	* gtk/gtktreeviewcolumn.c (gtk_tree_view_column_set_width): clamp
	width to be between min/max width, and still set the width
	even if autosize is turned on, so the tree view can use this
	function in order to autosize.
	(gtk_tree_view_column_init): set initial width to 1 not 0

	* gtk/gtktreeview.c (gtk_tree_view_size_request_buttons): use
	setter function to modify column width, so we get notification
	(gtk_tree_view_insert_iter_height): ditto
	(gtk_tree_view_calc_size): ditto
	(gtk_tree_view_check_dirty): ditto

	* gtk/gtktreeviewcolumn.c (gtk_tree_view_column_class_init): Add
	properties to change all the interesting attributes of the tree
	view column.
	(gtk_tree_view_column_set_header_clickable): rename set_clickable
	(gtk_tree_view_column_get_clickable): add
	(gtk_tree_view_column_set_cell_renderer): don't unset the current
	attributes; assume a cell renderer with equivalent object
	properties has been swapped in. Do g_object_notify().
	(gtk_tree_view_column_set_visible): g_object_notify
	(gtk_tree_view_column_get_sizing): rename from get_col_type
	(gtk_tree_view_column_set_sizing): g_object_notify
	(gtk_tree_view_column_set_width): add g_object_notify
	(gtk_tree_view_column_set_min_width): ditto
	(gtk_tree_view_column_set_max_width): ditto
	(gtk_tree_view_column_set_title): ditto
	(gtk_tree_view_column_set_clickable): ditto
	(gtk_tree_view_column_set_widget): ditto
	(gtk_tree_view_column_set_justification): ditto
This commit is contained in:
Havoc Pennington
2001-01-09 23:24:20 +00:00
committed by Havoc Pennington
parent 637c61da76
commit 85267e9224
12 changed files with 679 additions and 54 deletions

View File

@ -520,7 +520,8 @@ gtk_tree_view_size_request_buttons (GtkTreeView *tree_view)
gtk_widget_size_request (column->button, &requisition);
column->width = MAX (column->width, requisition.width);
gtk_tree_view_column_set_width (column,
MAX (column->width, requisition.width));
tree_view->priv->header_height = MAX (tree_view->priv->header_height, requisition.height);
}
}
@ -2215,9 +2216,11 @@ gtk_tree_view_insert_iter_height (GtkTreeView *tree_view,
max_height = MAX (max_height, TREE_VIEW_VERTICAL_SEPARATOR + height);
if (first == TRUE && TREE_VIEW_DRAW_EXPANDERS (tree_view))
column->width = MAX (column->width, depth * tree_view->priv->tab_offset + width);
gtk_tree_view_column_set_width (column,
MAX (column->width, depth * tree_view->priv->tab_offset + width));
else
column->width = MAX (column->width, width);
gtk_tree_view_column_set_width (column,
MAX (column->width, width));
first = FALSE;
}
@ -2311,9 +2314,10 @@ gtk_tree_view_calc_size (GtkTreeView *tree_view,
continue;
if (i == 0 && TREE_VIEW_DRAW_EXPANDERS (tree_view))
column->width = MAX (column->width, depth * tree_view->priv->tab_offset + width);
gtk_tree_view_column_set_width (column,
MAX (column->width, depth * tree_view->priv->tab_offset + width));
else
column->width = MAX (column->width, width);
gtk_tree_view_column_set_width (column, MAX (column->width, width));
}
_gtk_rbtree_node_set_height (tree, temp, max_height);
if (temp->children != NULL &&
@ -2445,7 +2449,7 @@ gtk_tree_view_check_dirty (GtkTreeView *tree_view)
dirty = TRUE;
if (column->column_type == GTK_TREE_VIEW_COLUMN_AUTOSIZE)
{
column->width = column->button->requisition.width;
gtk_tree_view_column_set_width (column, MAX (column->button->requisition.width, 1));
}
}
}
@ -3279,9 +3283,6 @@ gtk_tree_view_columns_autosize (GtkTreeView *tree_view)
gtk_widget_queue_resize (GTK_WIDGET (tree_view));
}
/* FIXME let's rename this to be "interactive" or something,
* "active" is confusing since it also is a widget state
*/
/**
* gtk_tree_view_set_headers_clickable:
* @tree_view: A #GtkTreeView.
@ -3300,7 +3301,7 @@ gtk_tree_view_set_headers_clickable (GtkTreeView *tree_view,
g_return_if_fail (tree_view->priv->model != NULL);
for (list = tree_view->priv->columns; list; list = list->next)
gtk_tree_view_column_set_header_clickable (GTK_TREE_VIEW_COLUMN (list->data), setting);
gtk_tree_view_column_set_clickable (GTK_TREE_VIEW_COLUMN (list->data), setting);
}
/**