2005-12-05 Matthias Clasen <mclasen@redhat.com>
* gtk/gtktreeview.c (gtk_tree_view_key_press): Free new_event
after sending it to the search entry. (#323209, Crispin Flowerday)
2005-11-29 Matthias Clasen <mclasen@redhat.com>
Properly handle model changes in GtkTreeSelection: (#322569,
Milosz Derezynski)
* gtk/gtktreeselection.c (gtk_tree_selection_selected_foreach):
Get a reference to the model, and stop the iteration if the model
of the treeview is changed on the way.
* gtk/gtktreeprivate.h:
* gtk/gtktreeselection.c (_gtk_tree_selection_emit_changed): New
private function to emit the GtkTreeSelection::changed signal.
* gtk/gtktreeview.c (gtk_tree_view_set_model): Call
_gtk_tree_selection_emit_changed() when the model changes.
2005-11-27 Matthias Clasen <mclasen@redhat.com>
Fix two memory handling problems in GtkTreeView: (#322350,
Søren Sandmann)
* gtk/gtktreeview.c (gtk_tree_view_destroy)
(gtk_tree_view_set_model): Remove all references to nodes in
the old model.
(gtk_tree_view_real_collapse_row): Unmark expanded_collapsed_node
before removing the children.
2005-10-28 Matthias Clasen <mclasen@redhat.com>
* gtk/gtktreeview.c (gtk_tree_view_search_key_press_event): Handle
Shift-G to go to the previous match, like firefox. (#320061, Christian
Neumair)
2005-10-27 Matthias Clasen <mclasen@redhat.com>
* gtk/gtktreeview.c (gtk_tree_view_button_press): Be more
careful about initializing cell_area. (#319382, Tommi
Komulainen)
2005-10-22 Michael Natterer <mitch@imendio.com>
* gtk/gtktreeview.c (gtk_tree_view_scroll_to_cell): check for the
widget being realized, in addition to being visible, to avoid
running into precondition check in gtk_tree_view_get_cell_area().
(approved by Kris).
2005-09-01 Matthias Clasen <mclasen@redhat.com>
* gdk/*.c: Intern some more strings.
* gtk/gtkintl.h:
* gtk/*.c: Define an I_() macro and use it instead of the
bulky g_intern_static_string().
2005-08-31 Matthias Clasen <mclasen@redhat.com>
* gdk/Makefile.am:
* gtk/Makefile.am: Intern type names in code generated by
glib-mkenums, too.
* gtk/*.c:
* gdk/x11/*.c:
* gdk/*.c: Intern type names before registering the type to avoid
unnecessary copies.
Sat Aug 20 16:12:14 2005 Jonathan Blandford <jrb@redhat.com>
* gtk/gtktreeview.c (gtk_tree_view_set_model): clear
scroll_to_path if the model changes.
* gtk/gtkiconview.c: (gtk_icon_view_destroy),
(gtk_icon_view_size_allocate), (gtk_icon_view_set_cursor),
(gtk_icon_view_scroll_to_path): Handle scrolling to a path before
we're realized, #312798
(gtk_icon_view_set_model): clear scroll_to_path if the model
changes.
2005-08-19 Matthias Clasen <mclasen@redhat.com>
* gtk/gtktreeview.c (gtk_tree_view_get_visible_range): Return
FALSE if the tree is empty. (#313891, Guillaume Cottenceau)
2005-08-11 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_size_allocate_columns): queue
a draw for the entire widget if any column changes width. (Fixes
#311026, reported by Frederic Crozat).
2005-07-14 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.[ch] (gtk_tree_view_get_visible_range): new
function. (fixes#105252, suggestion from Mikael Hallendal).
2005-07-13 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_bin_expose): paint a flat box
on the area the treeview got allocated extra vertically (fixes
#142063, reported by Brian Bober).
* gtk/gtktreeviewcolumn.c (gtk_tree_view_column_cell_process_action):
make this function calculate real_cell_area and real_background_area
correctly. (fixes#309249, reported by Bernd Demian).
2005-07-13 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_new_column_width): let's take
the MIN of width and max_width here, not width and max_width != -1.
(fixes#144480, reported by Mikael Magnusson).
2005-07-13 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (validate_row): when !separator, don't add
the focus_line_width to width/height (happens in
_column_cell_get_size), but do add the vertical-separator to height,
we weren't taking this into account before.
* gtk/gtkentrycompletion.c (_gtk_entry_completion_resize_popup):
take vertical-separator into account. (#309137, Ross Burton).
2005-07-11 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_class_init): add binding entry
for ctrl + backspace (move focus to parent without affecting
selection),
(gtk_tree_view_real_select_cursor_parent): implement ctrl+backspace
and simplify the function a bit. (#309296, Kathy Fernandes).
2005-07-10 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_search_key_press_event): also move
to the next match when ctrl+g is pressed. (#156657, Matt T. Proud).
2005-07-10 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_move_cursor_page_up_down): rework
function to make page up/down behave the same as in GtkTextView.
(Fixes#101220, Owen Taylor).
2005-07-09 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_real_expand_row): when
open_all is TRUE, traverse the newly built tree to emit
row_expanded for the subitems. (rev 1.444, patch in #172319
broke this). Fixes#305582, reported by Billy Biggs.
2005-07-08 Kristian Rietveld <kris@gtk.org>
Fixes#165034, reported by Jorn Baayen.
* gtk/gtkrbtree.[ch] (_gtk_rbtree_set_fixed_height): add a
mark_valid parameter (so we can mark all nodes as valid when we
are setting them to the fixed height).
* gtk/gtktreeview.c (initialized_fixed_height_mode): mark all
nodes as valid when setting the fixed height,
(do_validate_rows): update call to _set_fixed_height,
(gtk_tree_view_row_inserted): mark node as valid when fixed
height mode is enabled and a height has been set,
(gtk_tree_view_build_tree): if fixed height mode is enabled,
mark new nodes as valid in addition to setting the height.
2005-07-05 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_bin_expose): in the
'main' expose loop, add back the calls to _set_cell_data
removed earlier. (#309221, Matthias Clasen).
2005-06-23 Matthias Clasen <mclasen@redhat.com>
* gtk/gtktreeview.c (gtk_tree_view_key_press): Change the
keynav for header reordering and resizing to Alt-arrows and
Shift-Alt-arrows, following a proposal by the keynav
authority. (#308666, Calum Benson)
2005-06-19 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_clamp_node_visible): added a
check which avoids processing updates on bin_window and scrolling
if the node is already visible. (#170600, Billy Biggs).
2005-06-19 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (validate_visible_area): only keep the
row at the same position if the full row is visible. (#304623,
Jorn Baayen).
2005-06-19 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_size_allocate): set dy to zero
if treeview's height is smaller than the current page_size (just
like we do elsewhere).
2005-06-19 Kristian Rietveld <kris@gtk.org>
Make mousewheel scrolling possible in typeahead mode, suggestion
from Reinout van Schouwen (#307898).
* gtk/gtktreeview.c (gtk_tree_view_ensure_interactive_directory):
connect treeview search window to scroll_event signal,
(gtk_tree_view_search_scroll_event): implement.
2005-06-19 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_search_button_press_event): pass
the event on to treeview, so it has a change of selecting a row, etc.
(#169677, Kirk Bridger).
2005-06-19 Kristian Rietveld <kris@gtk.org>
This commit includes a fix for #169463, Stefan Kost.
* gtk/gtkcellrendererprogress.c (gtk_cell_renderer_progress_get_size):
when cell_area is set, return cell_area width/height as width/height,
so the focus rectangle will be drawn correctly.
* gtk/gtktreeview.c (gtk_tree_view_bin_expose): drop unneeded get
of focus-line-width property,
(validate_row): take focus_line_width into account.
* gtk/gtktreeviewcolumn.c (gtk_tree_view_column_cell_process_action):
also take focus_line_width into account when calculating the cell_area
y and height (before, we only took it into account when calculating
x and width).
2005-06-18 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_bin_expose): undo merging
of the separate loop setting cell data with cell drawing loop
(introduced in revision 1.280), since this breaks focus handling
wrt special cells.
2005-06-17 Kristian Rietveld <kris@gtk.org>
Fix#160281, testcase from Peter Bloomfield.
* gtk/gtktreeview.c (do_presize_handler): always size request
and update adjustments in fixed height mode,
(gtk_tree_view_build_tree): if a fixed height is set, set this
height on newly added nodes.
2005-06-17 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (validate_visible_area): make sure the row
above 'above_path' is always in a validated state, so it does
not mess up scrolling. (#303319, testcase from Billy Biggs).
2005-06-17 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (validate_visible_area): don't try to update
the top_row rowref ourselves here, but just have _dy_to_top_row()
do it,
(gtk_tree_view_scroll_to_cell): handle scrolling via
validate_visible_area() if the treeview is not visible or needs
reallocation. (#165246, Nickolay V. Shmyrev).
2005-06-17 Kristian Rietveld <kris@gtk.org>
Fixes#307914 (Alexander Larsson), fixing some breakage caused
by my previous commit.
* gtk/gtktreeview.c (validate_visible_area): force dy to be zero
when it fits on a single page,
(scroll_sync_handler): same here.
2005-06-15 Kristian Rietveld <kris@gtk.org>
Patch for #163214 (reported by Tommi Komulainen) and fixes some
other scrolling/validation related bugs along the why.
* gtk/gtktreeview.c (gtk_tree_view_size_request): run
do_validate_rows once and don't queue a size request there,
(gtk_tree_view_size_allocate): don't update vadj value without
reason, sync top_row/dy after the window sizes and adjustments
are in sync again,
(validate_visible_area): always update dy when scrolling,
manually set top_row here after changing the vadj (don't depend
on _adjustment_changed and top_row/dy sync to do this), since we
now always set top_row here correctly, we can always free
scroll_to_path at the end which avoids infinite expose loops,
(do_validate_rows): add queue_resize boolean, remove top_row/dy
sync here, we cannot do it safely at this place since the
window sizes and adjustments are out of sync,
(validate_rows), (validate_rows_handler): update call to
do_validate_rows().
2005-06-08 Matthias Clasen <mclasen@redhat.com>
* gtk/gtktreeview.c (gtk_tree_view_real_start_interactive_search):
Don't crash if search_window is NULL. (#304914, Victor Osadci,
testcase by Olaf Vitters)