2008-07-11 Kristian Rietveld <kris@gtk.org>
Bug 316087 - Resizing columns is chaotic
* gtk/gtktreeprivate.h: add new member fields.
* gtk/gtktreeview.c (gtk_tree_view_init), (validate_row): set post
validation flag,
(gtk_tree_view_size_allocate_columns): rework the size allocation
mechanism to only recalculate the expand values if the width of the
widget, content or the column configuration has changed,
(gtk_tree_view_size_allocate): move call to size_allocate_columns()
to before the adjustment updates so the proper width is used after
we updated it,
(gtk_tree_view_button_press), (gtk_tree_view_motion_resize_column):
use the column width minus the expand value for the resized width,
(gtk_tree_view_move_column_after): update call to
gtk_tree_view_size_allocate_columns().
* gtk/gtktreeviewcolumn.c (gtk_tree_view_column_set_expand): set use
resized width to FALSE.
* tests/Makefile.am:
* tests/testtreecolumnsizing.c: new interactive test program
for testing column resizing with different column configurations.
svn path=/trunk/; revision=20818
2008-06-19 Johan Dahlin <jdahlin@async.com.br>
* gtk/gtktreeview.c (gtk_tree_view_set_grid_lines),
(gtk_tree_view_set_enable_tree_lines):
gdk_gc_set_dashes expects a list of gint8, not guint8.
svn path=/trunk/; revision=20468
2008-06-08 Kristian Rietveld <kris@gtk.org>
Bug 536730 - memory corruption in gtktreeview
* gtk/gtktreeview.c (gtk_tree_view_real_collapse_row): first
remove the expand/collapse timeout and node, then free the rbtree.
svn path=/trunk/; revision=20334
2008-06-08 Kristian Rietveld <kris@gtk.org>
Bug 488119 - critical warnings from gtk_tree_view_get_visible_range
* gtk/gtktreeview.c (gtk_tree_view_get_visible_range): only try to
find path if we found valid nodes, return FALSE otherwise. (Patch
from Matthias Clasen).
svn path=/trunk/; revision=20333
2008-05-31 Kristian Rietveld <kris@imendio.com>
Bug 530146 - Setting non-string tooltip with
gtk_tree_view_set_tooltip_column() segfaults
* gtk/gtktreeview.c (gtk_tree_view_set_tooltip_query_cb): use
gtk_tree_model_get_value() and explicitly transform the value to a
string before setting it as tooltip.
svn path=/trunk/; revision=20261
2008-05-28 Kristian Rietveld <kris@imendio.com>
Bug 449625 - crash in gtk_tree_view_real_move_cursor at
gtktreeview.c:9641
* gtk/gtktreeview.c (gtk_tree_view_move_cursor_page_up_down):
cursor_offset *must* be larger than background height of the cursor
node, not just equal otherwise there is no guarantee there is a next
node.
svn path=/trunk/; revision=20219
2008-05-28 Kristian Rietveld <kris@imendio.com>
Refactor expand/collapse timeout handling (amendment to bug 511217).
* gtk/gtktreeview.c (add_expand_collapse_timeout),
(remove_expand_collapse_timeout): new functions, the remove function
also clears expanded_collapsed_node,
(cancel_arrow_animation): moved to be next to the add/remove timeout
functions,
(gtk_tree_view_unrealize),
(gtk_tree_view_row_deleted),
(gtk_tree_view_set_model),
(cancel_arrow_animation),
(gtk_tree_view_real_expand_row),
(gtk_tree_view_real_collapse_row): use the new add/remove functions.
svn path=/trunk/; revision=20205
* gtk/gtktreeview.c (cancel_arrow_animation): Reset
expanded_collapsed_node when canceling the animation.
Patch by Nicholas Setton.
svn path=/trunk/; revision=20201
2008-03-15 Matthias Clasen <mclasen@redhat.com>
* gtk/gtktreeview.c (gtk_tree_view_ensure_interactive_directory):
Set window type hint on the search popup. (#522279, Danny Baumann)
svn path=/trunk/; revision=19880
2008-02-13 Kristian Rietveld <kris@imendio.com>
* gtk/gtktreeview.c (gtk_tree_view_stop_rubber_band): only
queue a redraw if the rubber banding has actually been active.
svn path=/trunk/; revision=19556
2008-02-12 Kristian Rietveld <kris@imendio.com>
* gtk/gtktreeview.c (gtk_tree_view_real_select_cursor_row),
(gtk_tree_view_real_toggle_cursor_row): guard against people
deleting the row in question in the selection-changed callback.
(#514621, Andreas Koehler).
svn path=/trunk/; revision=19530
2008-02-12 Matthias Clasen <mclasen@redhat.com>
* gtk/*.c: Unify the handling of various "Enter" keysyms
all over the place. (#515047, Christian Persch)
svn path=/trunk/; revision=19528
2008-01-10 Kristian Rietveld <kris@imendio.com>
Fix#477175, reported by Juri Pakaste.
* gtk/gtktreeprivate.h:
* gtk/gtktreeview.c (gtk_tree_view_top_row_to_dy): do not set
tree_view->priv->dy here directly, just calculate the new value
and set it on the adjustment,
(gtk_tree_view_adjustment_changed): add guards to not call
gtk_tree_view_dy_to_top_row() if we are currently in
gtk_tree_view_top_row_to_dy(),
(gtk_tree_view_put): fix coordinate annotation: these are bin_window
coordinates, not tree coordinates,
(gtk_tree_view_real_start_editing): add cast.
* gtk/tests/treeview-scrolling.c: add an assertion for checking the
position of the editable in the "create new row and start editing"
tests.
svn path=/trunk/; revision=19331
2007-10-09 Kristian Rietveld <kris@imendio.com>
* gtk/gtktreeview.c (gtk_tree_view_move_cursor_page_up_down): make
sure the new cursor node is visible when we are done. (Fixes#472965,
Carlos Garnacho).
svn path=/trunk/; revision=18899
2007-10-09 Kristian Rietveld <kris@imendio.com>
* gtk/gtktreeview.c (gtk_tree_view_move_cursor_up_down): we should
only "don't move the cursor, but just select the current node" if the
cursor node is actually selectable. (Fixes#483730, reported by
Geoff Bache).
svn path=/trunk/; revision=18898
2007-09-14 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_get_property): the tooltip-column
property getter needs to set an integer, not a boolean. (#476689,
spotted and patch by Christian Persch).
svn path=/trunk/; revision=18818
2007-09-13 Kristian Rietveld <kris@imendio.com>
* gtk/gtktreeview.c (gtk_tree_view_set_toooltip_cell): if cell
is set, always pass in path to gtk_tree_view_get_cell_area() whether
it is NULL or set. Added explanatory comment and added this
side case to the API documentation.
svn path=/trunk/; revision=18812
2007-09-10 Kristian Rietveld <kris@imendio.com>
* gtk/gtktreeview.c (gtk_tree_view_key_press): only start
typeahead search if tree_view has focus (and not one of the column
buttons).
svn path=/trunk/; revision=18779
2007-09-09 Kristian Rietveld <kris@gtk.org>
Reverted r16699:
2006-10-30 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_class_init): change left/right
keybindings to collapse/expand rows instead of moving the focus
cursor. (#105895, Brian Bober and others).
svn path=/trunk/; revision=18768
2007-08-22 Kristian Rietveld <kris@imendio.com>
Do not allow the cursor to go to a separator row. Fixes#441219,
modified patch by Carlos Garnacho.
* gtk/gtktreeview.c (row_is_separator): new inline function
for calling the row-separator-func, made all of gtktreeview.c use
this function instead of calling the func themselves,
(gtk_tree_view_button_press): treat a click on a separator like
a click on empty space,
(gtk_tree_view_update_rubber_band_selection_rage): skip
non-selectable rows,
(search_first_focusable_path),
(gtk_tree_view_focus_to_cursor),
(gtk_tree_view_move_cursor_up_down),
(gtk_tree_view_move_cursor_page_up_down),
(gtk_tree_view_move_cursor_start_end): skip separators,
(gtk_tree_view_real_set_cursor): do not allow setting the cursor
on a separator.
svn path=/trunk/; revision=18672
2007-08-14 Kristian Rietveld <kris@imendio.com>
* gtk/gtktreeview.c (gtk_tree_view_move_cursor_up_down): make
sure we fail keynav if the only item in the list is already selected.
(Fixes#465039, reported by Fernando Herrera).
svn path=/trunk/; revision=18610
2007-07-19 Kristian Rietveld <kris@imendio.com>
* gtk/gtk.symbols:
* gtk/gtktreeprivate.h:
* gtk/gtktreeview.[ch] (gtk_tree_view_get_tooltip_context),
(gtk_tree_view_[sg]et_tooltip_column): add more convenience API.
* tests/testtooltip.c (query_tooltip_tree_view_cb): use
gtk_tree_view_get_tooltip_context().
* demos/gtk-demo/demo.ui: add a tooltip column to the list store,
set tooltip-column on the tree view.
svn path=/trunk/; revision=18496
2007-07-18 Matthias Clasen <mclasen@redhat.com>
* gtk/gtktreeview.c: Correct some mistakes in the
documentation of the test-expand/collapse-row signals.
(#457774, Olivier Andrieu)
svn path=/trunk/; revision=18489
2007-07-13 Kristian Rietveld <kris@imendio.com>
#408327, improve tooltip positioning.
* gtk/gtk.symbols: updated.
* gtk/gtktooltip.[ch] (gtk_tooltip_position): factor out
positioning code in here,
(gtk_tooltip_set_tip_area): new function to set the tooltip
area,
(gtk_tooltip_reset), (_gtk_tooltip_handle_event): hide tooltip
once the pointer leaves the tip area.
* gtk/gtktreeview.[ch] (gtk_tree_view_set_tooltip_row),
(gtk_tree_view_set_tooltip_cell): convenience functions to set
tip area for row/column/cell.
* tests/testtooltips.c (query_tooltip_tree_view_cb): use
gtk_tree_view_set_tooltip_row.
svn path=/trunk/; revision=18464