Re: TreeView column autoresize

On Fri, Dec 22, 2006 at 01:46:43PM -0500, Gavin Romig-Koch wrote:
> _gtk_tree_view_column_cell_set_dirty is often called repeatedly on the same
> column, for instance by gtk_tree_view_column_set_attributesv which calls it
> through gtk_tree_view_column_clear_attributes, and then again through
> gtk_tree_view_column_add_attribute.  Because _set_dirty sets resized_width
> to the max of requested_width and button_request, and also sets
> requested_width to -1:
>  tree_column->resized_width = MAX (tree_column->requested_width, 
> tree_column->button_request);
>  tree_column->requested_width = -1;
> repeatedly calling _set_dirty will force resized_width to 
> button_request.  This
> can be seen in Nautilus by resizing the File Name column and then 
> changing the
> zoom level.
> It does not make sense for _gtk_tree_view_column_cell_set_dirty to be 
> changing
> resized_width.  _set_dirty is used to tell the column cell that one or more
> display related attributes of the cell have changed, and that the cell needs
> to be re-rendered and re-displayed.  resized_width keeps track of the fact
> that the user has resized a column directly with the mouse, and what 
> size they
> resized it to.

This makes sense and AFAIK no one requests making
_gtk_tree_view_column_cell_set_dirty() recalculate the
requested width again.

But that's quite different from recalculating the width when
the user double-clicks on the column separator.  If this was
a feature, the recalculation should be restored somewhere
else in the code handling this event (I haven't looked at
the code paths, so I can't tell where).



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]