Commit Graph

625 Commits

Author SHA1 Message Date
Kristian Rietveld
736755e07d guard against child removal in row-expanded callback. (#366782, John
2006-10-29  Kristian Rietveld  <kris@gtk.org>

	* gtk/gtktreeview.c (gtk_tree_view_real_expand_row): guard against
	child removal in row-expanded callback. (#366782, John Ellis).
2006-10-29 15:49:50 +00:00
Kristian Rietveld
c88087b694 rework the area_above == 0 case to not overwrite the variables in the
2006-10-27  Kristian Rietveld  <kris@gtk.org>

	* gtk/gtktreeview.c (validate_visible_area): rework the area_above == 0
	case to not overwrite the variables in the lower scope (which are
	used later on ...), get the path correctly and bail out when there
	isn't a node above us. (#359231).
2006-10-27 19:59:16 +00:00
Kristian Rietveld
fb59835481 add getter/setter for show-expanders property, queue a redraw when this
2006-10-08  Kristian Rietveld  <kris@gtk.org>

	* gtk/gtktreeview.[ch] (gtk_tree_view_set_property),
	(gtk_tree_view_set_show_expanders),
	(gtk_tree_view_get_show_expanders): add getter/setter for
	show-expanders property, queue a redraw when this property
	is toggled (#351167, Martin Ejdestig),
	(gtk_tree_view_set_level_indentation),
	(gtk_tree_view_get_level_indentation): also add getter/setter
	and docs for level-indentation property.
2006-10-08 14:36:20 +00:00
Matthias Clasen
07e7719441 Apply a cleanup patch by Kjartan Maraas (#341812)
2006-10-08  Matthias Clasen  <mclasen@redhat.com>

	* Apply a cleanup patch by Kjartan Maraas  (#341812)
2006-10-08 05:07:55 +00:00
Kristian Rietveld
b6296750fe if the tree view has already been realized; scroll to background area
2006-09-25  Kristian Rietveld  <kris@gtk.org>

	* gtk/gtktreeview.c (gtk_tree_view_scroll_to_cell): if the tree view
	has already been realized; scroll to background area instead of
	cell area. (Fixes #330683, Johan Dahlin, Tommi Komulainen).
2006-09-25 14:34:52 +00:00
Kristian Rietveld
d56ae617ef only attempt to create the GCs if the widget is realized. (Fixes #357578).
2006-09-25  Kristian Rietveld  <kris@gtk.org>

	* gtk/gtktreeview.c (gtk_tree_view_set_grid_lines): only attempt
	to create the GCs if the widget is realized. (Fixes #357578).
2006-09-25 14:25:33 +00:00
Matthias Clasen
74dafefe45 Send change notification for the right property. (#355308, Torsten
2006-09-16  Matthias Clasen  <mclasen@redhat.com>

        * gtk/gtktreeview.c (gtk_tree_view_set_grid_lines): Send
        change notification for the right property.  (#355308,
        Torsten Schoenfeld)
2006-09-16 04:40:50 +00:00
Michael Natterer
278949fb84 refactored column header navigation/resizing/reordering to be more
2006-09-15  Michael Natterer  <mitch@imendio.com>

	* gtk/gtktreeview.c (gtk_tree_view_key_press): refactored column
	header navigation/resizing/reordering to be more readable and lose
	one level of nesting.
2006-09-15 12:51:58 +00:00
Kristian Rietveld
9255c2d110 actually directly return after handling column button focus; we disable
2006-09-15  Kristian Rietveld  <kris@imendio.com>

	* gtk/gtktreeview.c (gtk_tree_view_key_press): actually directly
	return after handling column button focus; we disable wrap around
	with this (which actually happened via a really weird code path).
	(Michael Natterer)
2006-09-15 11:22:03 +00:00
Kristian Rietveld
2dddfb8c22 make column resizing code RTL aware, also break from the loops after we
2006-09-15  Kristian Rietveld  <kris@imendio.com>

	* gtk/gtktreeview.c (gtk_tree_view_key_press): make column resizing
	code RTL aware, also break from the loops after we have seen the
	focussed column button (Michael Natterer).
2006-09-15 10:14:29 +00:00
Matthias Clasen
77cdc290b9 Renew the flush timeout. (#354043, Nelson Benitez)
2006-09-10  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtktreeview.c (gtk_tree_view_search_scroll_event): Renew
	the flush timeout.  (#354043, Nelson Benitez)
2006-09-10 05:31:26 +00:00
Matthias Clasen
65d844f074 Be more careful when creating gcs, also emit change notification.
2006-08-06  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtktreeview.c (gtk_tree_view_set_grid_lines)
	(gtk_tree_view_set_enable_tree_lines): Be more careful
	when creating gcs, also emit change notification.
	(gtk_tree_view_unrealize): Free the gcs here.  (#349834,
	Chris Wilson)
2006-08-06 05:44:03 +00:00
Kristian Rietveld
36329391a7 Fix for #335012, reported by Matteo Nastasi.
2006-07-18  Kristian Rietveld  <kris@imendio.com>

	Fix for #335012, reported by Matteo Nastasi.

	* gtk/gtktreeview.c (gtk_tree_view_real_start_editing): if the
	requested space of the editable is smaller than the cell area,
	put it up above the middle of the cell area.

	* gtk/gtkcellrenderertext.c (gtk_cell_renderer_text_start_editing):
	configure the inner border to cover the cell area if the
	entry requisition is smaller than the cell_area.
2006-07-18 13:33:28 +00:00
Kristian Rietveld
61f4d77d55 Another fix for #164884.
2006-07-18  Kristian Rietveld  <kris@imendio.com>

	Another fix for #164884.

	* gtk/gtktreeprivate.h: add in_grab field.

	* gtk/gtktreeview.c (gtk_tree_view_button_press): only save press
	to possibly begin a drag when there's no grab pending,
	(gtk_tree_view_grab_notify): toggle in_grab field.
2006-07-18 12:33:25 +00:00
Kristian Rietveld
6ca1b1e685 use MAX priv->width, alloc.width when allocating the bin_window,
2006-07-18  Kristian Rietveld  <kris@imendio.com>

	* gtk/gtktreeview.c (gtk_tree_view_realize): use MAX
	priv->width, alloc.width when allocating the bin_window,
	(gtk_tree_view_bin_expose): don't overrun bin_window when drawing
	the flat box.
2006-07-18 10:15:37 +00:00
Kristian Rietveld
e39a71dceb check if the iter still has children after running the test-expand-row
2006-07-17  Kristian Rietveld  <kris@imendio.com>

	* gtk/gtktreeview.c (gtk_tree_view_build_tree): check if the iter
	still has children after running the test-expand-row func,
	(gtk_tree_view_real_expand_row): ditto. (#302127, Billy Biggs).
2006-07-17 13:57:38 +00:00
Matthias Clasen
f8794cccca Improve consistency of signal and property names 2006-07-06 05:14:03 +00:00
Matthias Clasen
982a5768ec Don't leak dash_list. (#346639, Christian Persch)
2006-07-05  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtktreeview.c (gtk_tree_view_set_enable_tree_lines): Don't
	leak dash_list.  (#346639, Christian Persch)
2006-07-05 16:29:46 +00:00
Kristian Rietveld
542ac19eef cancel the expand collapse timeout when unsetting the model (Fixes
2006-06-27  Kristian Rietveld  <kris@gtk.org>

	* gtk/gtktreeview.c (gtk_tree_view_set_model): cancel the
	expand collapse timeout when unsetting the model (Fixes #327164,
	reported by Daichi Kawahata).
2006-06-27 09:28:48 +00:00
Matthias Clasen
49a025bbdc Fix the registration of the grid-lines property (#345456, Murray Cumming)
2006-06-21  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtktreeview.c (gtk_tree_view_class_init): Fix the registration
	of the grid-lines property  (#345456, Murray Cumming)
2006-06-21 15:04:44 +00:00
Kristian Rietveld
e472c2af45 Allocate space for the grid lines when they are enabled.
2006-06-21  Kristian Rietveld  <kris@imendio.com>

	Allocate space for the grid lines when they are enabled.

	* gtk/gtktreeview.c (gtk_tree_view_bin_expose): make sure the cell
	area does not overlap with the grid lines, also draw the line for
	"the next cell" in the last loop iteration, make sure the cursor falls
	in between the grid lines,
	(validate_row): request extra space for the grid lines.
2006-06-21 11:11:20 +00:00
Matthias Clasen
2406a5b256 Better fix.
2006-06-20  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtktreeview.c (gtk_tree_view_set_column_drag_info): Better
	fix.
2006-06-20 14:12:15 +00:00
Matthias Clasen
103bba09e4 (gtk_tree_view_set_column_drag_info): Don't crash if the
column_drop_func says always no.  (#344850, Christian Weiske)
2006-06-20 03:28:36 +00:00
Matthias Clasen
a5aaf6b8a5 Don't leak dash_list.
2006-06-19  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtktreeview.c (gtk_tree_view_set_grid_lines): Don't leak
	dash_list.
2006-06-20 01:57:26 +00:00
Matthias Clasen
400101a108 Fix 344838 2006-06-14 13:32:49 +00:00
Kristian Rietveld
7a6a6ebcff Introduce grid and tree lines in GtkTreeView. (#106406, Martyn Russell).
2006-06-12  Kristian Rietveld  <kris@imendio.com>

	Introduce grid and tree lines in GtkTreeView. (#106406,
	Martyn Russell).

	* gtk/gtktreeprivate.h: add new fields to GtkTreePrivate.

	* gtk/gtkenums.h: add GtkTreeViewGridLines.

	* gtk/gtktreeview.[ch] (gtk_tree_view_set_grid_lines),
	(gtk_tree_view_get_grid_lines),
	(gtk_tree_view_set_enable_tree_lines),
	(gtk_tree_view_get_enable_tree_lines): new API,
	(gtk_tree_view_class_init): new properties,
	(gtk_tree_view_init), (gtk_tree_view_{get,set}_property),
	(gtk_tree_view_realize), (gtk_tree_view_draw_grid_lines),
	(gtk_tree_view_bin_expose): implement.

	* gtk/gtk.symbols: update.
2006-06-12 18:17:35 +00:00
Kristian Rietveld
f6c583f74e Rubber banding for GtkTreeView, #80127. Uses same method as GtkIconView.
2006-06-02  Kristian Rietveld  <kris@imendio.com>

	Rubber banding for GtkTreeView, #80127.  Uses same method as
	GtkIconView.

	* gtk/gtktreeview.c (gtk_tree_view_class_init),
	(gtk_tree_view_init), (gtk_tree_view_get_property),
	(gtk_tree_view_set_property), (gtk_tree_view_set_rubber_banding),
	(gtk_tree_view_get_rubber_banding): add property,
	(gtk_tree_view_button_press): start rubber banding if enabled and
	press is on a non-selected node,
	(gtk_tree_view_button_release): stop rubber banding,
	(gtk_tree_view_motion_bin_window), (scrool_row_timeout): enable/update
	the rubber band,
	(gtk_tree_view_bin_expose): draw rubber band if active,
	(gtk_tree_view_stop_rubberband),
	(gtk_tree_view_update_rubber_band_selection_range),
	(gtk_tree_view_update_rubber_band_selection),
	(gtk_tree_view_update_rubber_band),
	(gtk_tree_view_paint_rubber_band): new functions.

	* gtk/gtktreeview.h: add new set/get function for rubber banding
	property.

	* gtk/gtktreeprivate.h: add a bunch of new private fields.
2006-06-02 20:40:33 +00:00
Kristian Rietveld
29018576b7 revert fix of #164884 because it's not a problem in gtk+ but in
2006-06-02  Kristian Rietveld  <kris@imendio.com>

	* gtk/gtktreeview.c (gtk_tree_view_leave_notify)P: revert fix of
	#164884 because it's not a problem in gtk+ but in applications and
	it breaks starting drags from the edge of a row.
2006-06-02 19:06:09 +00:00
Kristian Rietveld
a70e666423 Separate sensitive/selectable properties.
2006-06-02  Kristian Rietveld  <kris@imendio.com>

	Separate sensitive/selectable properties.

	* gtk/gtktreeselection.c (tree_column_is_sensitive): remove,
	(_gtk_tree_selection_row_is_selectable): remove checks to see if at
	least one column is sensitive,
	(gtk_tree_selection_real_select_node): remove code which enables
	insensitive rows to always be unselected.

	* gtk/gtktreeview.c (gtk_tree_view_row_changed): remove code
	that unselects a node if it just became insensitive.

	* gtk/gtkcombobox.c (gtkcombo_box_list_select_func): new function,
	based on the at least one column sensitive check from
	_gtk_tree_selection_row_is_selectable(),
	(gtk_combo_box_list_setup): set selection function on tree selection.
2006-06-02 18:55:59 +00:00
Matthias Clasen
3c6de40578 Document signals. (#302556, Stefan Kost)
2006-05-31  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtktreeview.c (gtk_tree_view_class_init): Document
	signals.  (#302556, Stefan Kost)
2006-05-31 19:17:16 +00:00
Johan Dahlin
743c6be7e4 Add a space 2006-05-29 21:51:01 +00:00
Kristian Rietveld
05a0b0b4fb select the current focus row if nothing is selected and ctrl is not
2006-05-29  Kristian Rietveld  <kris@gtk.org>

	* gtk/gtktreeview.c (gtk_tree_view_move_cursor_up_down): select
	the current focus row if nothing is selected and ctrl is not pressed.
	(Fixes #324480, Murray Cumming/Srirama Sharma).
2006-05-28 23:34:47 +00:00
Kristian Rietveld
3c6fb8881c refactor to work correctly in RTL mode.
2006-05-28  Kristian Rietveld  <kris@gtk.org>

	* gtk/gtktreeviewcolumn.c (_gtk_tree_view_column_cell_focus): refactor
	to work correctly in RTL mode.

	* gtk/gtktreeview.c (gtk_tree_view_move_cursor_left_right): make
	cursor movement to left/right work correctly in RTL mode.
2006-05-28 21:51:04 +00:00
Kristian Rietveld
8ac6ef2176 broken pipe 2006-05-28 00:20:05 +00:00
Kristian Rietveld
ff8eeb3c1d set the sizing type of the new column to FIXED,
2006-05-28  Kristian Rietveld  <kris@gtk.org>

	* gtk/gtktreeview.c (gtk_tree_view_insert_column): set the sizing
	type of the new column to FIXED,
	(gtk_tree_view_insert_column_with_attributes): likewise. (#341898,
	Dan Winship).
2006-05-27 22:39:46 +00:00
Kristian Rietveld
b97fea2c26 really fix #333284.
2006-05-27  Kristian Rietveld  <kris@gtk.org>

	* gtk/gtktreeview.c (gtk_tree_view_queue_draw_arrow): really fix
	#333284.
2006-05-27 21:09:59 +00:00
Kristian Rietveld
4f88a172cb broken pipe 2006-05-27 16:20:20 +00:00
Kristian Rietveld
e230adcfa0 queue a redraw for the full width of the row, not just the width we got
2006-05-26  Kristian Rietveld  <kris@gtk.org>

	* gtk/gtktreeview.c (gtk_tree_view_queue_draw_arrow): queue a redraw
	for the full width of the row, not just the width we got allocated.
	(Fixes #333284, reported by Benjamin Berg).
2006-05-26 00:25:44 +00:00
Kristian Rietveld
7bae68f0b7 set dy to page_size + height in the event dy + page_size is about to
2006-05-26  Kristian Rietveld  <kris@gtk.org>

	* gtk/gtktreeview.c (gtk_tree_view_top_row_to_dy): set dy to
	page_size + height in the event dy + page_size is about to become
	bigger than height.
2006-05-26 00:00:50 +00:00
Matthias Clasen
48f4f383f3 Fix an RTL problem with toggles in expander columns. (#341896, Roozbeh
2006-05-15  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtktreeview.c (gtk_tree_view_button_press): Fix
	an RTL problem with toggles in expander columns.
	(#341896, Roozbeh Pournader)
2006-05-16 01:38:53 +00:00
Søren Sandmann
6cb19cf3ad gtk/gtklayout.c (gtk_layout_realize), gtk/gtkiconview.c
Mon May 15 15:12:05 2006  Søren Sandmann  <sandmann@redhat.com>

	* gtk/gtklayout.c (gtk_layout_realize),
	* gtk/gtkiconview.c (gtk_icon_view_realize),
	* gtk/gtktreeview.c (gtk_tree_view_realize): Set the background of
	the clip windows to NULL, since they are generally invisible and
	don't have EXPOSURE set, which means they temp-unvlicker code
	doesn't apply to them.

	* gdk/x11/gdkgeometry-x11.c (_gdk_window_move_resize_child): Unset
	the background of the parent window during resizing. Invalidate
	the uncoered area of the parent window. Bug 341332.
2006-05-15 19:17:30 +00:00
Matthias Clasen
113f364a37 More of the same 2006-05-14 04:25:34 +00:00
Matthias Clasen
f26aad1916 Boilerplate reduction 2006-05-02 23:56:43 +00:00
Kristian Rietveld
33cddd12d7 set tmpnode to the return value of the _gtk_rbtree_insert* functions,
2006-05-02  Kristian Rietveld  <kris@imendio.com>

	* gtk/gtktreeview.c (gtk_tree_view_row_inserted): set tmpnode to
	the return value of the _gtk_rbtree_insert* functions, since that
	is the node we really want to check for visibilty.
2006-05-02 15:50:58 +00:00
Kristian Rietveld
9fd0d4b8b9 Fix for #340200, spotted by Torsten Schoenfeld.
2006-04-30  Kristian Rietveld  <kris@imendio.com>

	Fix for #340200, spotted by Torsten Schoenfeld.

	* gtk/gtktreeview.c (gtk_tree_view_get_cell_area): fix up logic
	calculating the level indentation,
	(gtk_tree_view_start_editing): remove code calculating the
	level indentation, since _get_cell_area() takes care of this for us.
2006-04-30 15:49:25 +00:00
Matthias Clasen
373cbb13be Don't force the standard DND icon if the user has a custom DND source.
2006-04-28  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtktreeview.c (gtk_tree_view_drag_begin): Don't force
	the standard DND icon if the user has a custom DND source.
	(#339522, Joe Wreschnig)
2006-04-28 14:32:09 +00:00
Kristian Rietveld
3ec54866c3 new function, (validate_visible_area): when a node is validated, only
2006-04-26  Kristian Rietveld  <kris@imendio.com>

	* gtk/gtktreeview.c (node_is_visible): new function,
	(validate_visible_area): when a node is validated, only queue a
	redraw for that node, not for the entire widget (a redraw for the
	entire widget is only needed when the sizes change, and
	_queue_resize() will take care of that),
	(do_validate_rows): do not queue a redraw, redraws are only needed
	for changes in the visible area and validate_visible_area() takes
	care of that,
	(gtk_tree_view_row_inserted): for fixed height mode, only queue
	a resize and redraw if the node is visible, else no redraw is needed.
2006-04-26 14:10:01 +00:00
Kristian Rietveld
d09c7c67af If this new "row-ending-details" property is turned on, more detailed
2006-04-26  Kristian Rietveld  <kris@imendio.com>

	If this new "row-ending-details" property is turned on, more
	detailed "details" will be passed to the theme engine for drawing
	the background, drop indicator and focus rectangle.  Requirement is
	that the theme engine supports these details. (#333760).

	* gtk/gtktreeview.c (gtk_tree_view_class_init): add row-ending-details
	style property,
	(gtk_tree_view_bin_expose): pass more detailed detail to
	gtk_paint_flat_box() if the property is turned on,
	(gtk_tree_view_bin_expose): likewise for the drop indicator,
	(gtk_tree_view_bin_expose): likewise for the focus rectangle.
2006-04-26 12:48:03 +00:00
Kristian Rietveld
ebe22cb38a (broken pipe) 2006-04-26 12:39:25 +00:00
Matthias Clasen
0d10969b9f Match parameter names with the headers.
2006-04-24  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkclipboard.h:
	* gtk/gtkprinter.c:
	* gtk/gtkprintsettings.h:
	* gtk/gtkprintsettings.c: Match parameter names with the headers.

	* gtk/gtkprintoperation-unix.c (gtk_print_run_page_setup_dialog):
	Add docs.

	* gtk/gtktextbufferrichtext.c (gtk_text_buffer_deserialize):
	* gtk/gtkstatusicon.c (gtk_status_icon_get_storage_type):
	* gtk/gtktreeview.c (gtk_tree_view_set_search_position_func):
	* gtk/gtktreeview.c (gtk_tree_view_get_headers_clickable):
	* gtk/gtkcellrendererspin.c (gtk_cell_renderer_spin_new):
	* gtk/gtkmenu.c (gtk_menu_get_for_attach_widget): Fix the docs.
2006-04-24 05:42:12 +00:00
Matthias Clasen
7b19dcbe79 Reorganize slightly to avoid a possible NULL dereference. (Coverity)
2006-04-13  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtktreeview.c (gtk_tree_view_header_focus): Reorganize slightly
	to avoid a possible NULL dereference.  (Coverity)
2006-04-13 04:31:51 +00:00
Matthias Clasen
3014a278ed Don't allow passing NULL for x1 or x2, adjust callers.
2006-04-12  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtktreeview.c (gtk_tree_view_get_arrow_xrange): Don't
	allow passing NULL for x1 or x2, adjust callers.
2006-04-13 03:40:48 +00:00
Matthias Clasen
e12d6657ee Remove some unused variables.
2006-04-11  Matthias Clasen  <mclasen@redhat.com>

        * gtk/gtktextview.c (selection_motion_event_handler): Remove
        some unused variables.

        * gtk/gtktreeview.c ((gtk_tree_view_search_position_func): Apply
        a patch from David Trowbridge to improve the positioning of the
        search popup.  (#338047)
2006-04-12 02:48:43 +00:00
Matthias Clasen
8a1478a58f Remove some accidentally committed stuff 2006-03-22 20:06:16 +00:00
Matthias Clasen
3fb3db9f7a Use fg_gc to draw the inter-row drop highlight. Also draw the line all the
2006-03-22  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtktreeview.c (gtk_tree_view_bin_expose): Use fg_gc to
	draw the inter-row drop highlight. Also draw the line all the
	way across, and flip it in RTL mode. (#334906, Ian McDonald)
2006-03-22 18:46:08 +00:00
Federico Mena Quintero
bb7fd9549b Make Shift-P and Shift-N activate typeahead in GtkTreeView (i.e. they are
2006-03-10  Federico Mena Quintero  <federico@novell.com>

	Make Shift-P and Shift-N activate typeahead in GtkTreeView
	(i.e. they are just normal capital letters).  Fixes bug #334098.

	* gtk/gtktreeview.c (gtk_tree_view_add_move_binding): Add an
	"add_shifted_binding" argument which determines whether we'll add
	the same binding with GDK_SHIFT_MASK.
	(gtk_tree_view_class_init): Use add_shifted_binding=FALSE for GDK_p
	and GDK_n; use TRUE for all the rest.
2006-03-10 17:16:50 +00:00
Kristian Rietveld
2e6ba401cc rename to _gtk_tree_selection_row_is_selectable and export internally,
2006-03-01  Kristian Rietveld  <kris@imendio.com>

	* gtk/gtktreeselection.c (row_is_selectable): rename to
	_gtk_tree_selection_row_is_selectable and export internally,
	(gtk_tree_selection_real_select_node): changed so it is always
	possible to unselect insensitive nodes, changed the logic a bit to
	be more clear.

	* gtk/gtktreeprivate.h: add _gtk_tree_selection_row_is_selectable.

	* gtk/gtktreeview.c (gtk_tree_view_row_changed): Unselect a row if
	it became insensitive.
2006-03-01 12:18:57 +00:00
Kristian Rietveld
236760d04e fix compiler warning.
2006-02-06  Kristian Rietveld  <kris@gtk.org>

	* gtk/gtktreeview.c (gtk_tree_view_get_search_entry): fix compiler
	warning.
2006-02-06 18:32:59 +00:00
Kristian Rietveld
58e77fe25b #322591, Jonathan Blandford.
2006-01-24  Kristian Rietveld  <kris@gtk.org>

	#322591, Jonathan Blandford.

	* gtk/gtktreeview.[ch] (gtk_tree_view_get_search_entry),
	(gtk_tree_view_set_search_entry),
	(gtk_tree_view_get_search_position_func),
	(gtk_tree_view_set_search_position_func): New functions,
	and small adaptions to the tree view code to allow for setting
	the entry and search position function.

	* gtk/gtktreeprivate.h: Removed GtkTreeViewSearchDialogPositionFunc
	typedef, which is now in gtktreeview.h as
	GtkTreeViewSearchPositionFunc.  Add/update fields.

	* gtk/gtk.symbols: Add new functions.

	* tests/testtreesort.c: Add a little test for _set_search_entry().
2006-01-24 10:49:29 +00:00
Kristian Rietveld
be80745aac Revert previous commit after more searching in the bugzilla archives (see
2006-01-22  Kristian Rietveld  <kris@gtk.org>

	* gtk/gtktreeview.c (gtk_tree_view_bin_expose): Revert previous
	commit after more searching in the bugzilla archives (see #309221).
2006-01-22 16:04:02 +00:00
Kristian Rietveld
d1337e1012 Remove second call to gtk_tree_view_column_cell_set_cell_data, since we
2006-01-22  Kristian Rietveld  <kris@gtk.org>

	* gtk/gtktreeview.c (gtk_tree_view_bin_expose): Remove second call
	to gtk_tree_view_column_cell_set_cell_data, since we also set the
	cell data before iterating over the columns for exposure. (Fixes
	#322471, Duncan Coutts).
2006-01-22 15:50:31 +00:00
Kristian Rietveld
f396a237dd fixup adjustments and top_row if the current dy + page_size exceeds the
2006-01-14  Kristian Rietveld  <kris@gtk.org>

	* gtk/gtktreeview.c (gtk_tree_view_size_allocate),
	(validate_visible_area): fixup adjustments and top_row if the
	current dy + page_size exceeds the new tree view height. (Fixes
	#316689, reported by Chris Lord).
2006-01-14 19:41:07 +00:00
Michael Natterer
eb8f23f90f don't animate the expander arrows if gtk-enable-animations is FALSE (bug
2006-01-13  Michael Natterer  <mitch@imendio.com>

	* gtk/gtktreeview.c (gtk_tree_view_real_expand_row)
	(gtk_tree_view_real_collapse_row): don't animate the expander
	arrows if gtk-enable-animations is FALSE (bug #142582).
2006-01-13 10:03:31 +00:00
Matthias Clasen
04eceaf621 Use the slice allocator for many small allocations.
2006-01-04  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkaccelmap.c:
	* gtk/gtkactiongroup.c:
	* gtk/gtkdialog.c:
	* gtk/gtkfilesystemunix.c:
	* gtk/gtkgc.c:
	* gtk/gtkkeyhash.c:
	* gtk/gtkplug.c:
	* gtk/gtktextiter.c:
	* gtk/gtktextlayout.c:
	* gtk/gtkuimanager.c:
	* gtk/gtkwidget.c:
	* gtk/gtkwindow.c:
	* gtk/gtkxembed.c: Use the slice allocator for many small
	allocations.

	* gtk/gtkcolorsel.c:
	* gtk/gtktreeview.c: Use IPN.

	* gtk/gtkwidget.c: Remove an unused field from the AccelPath
	struct.
2006-01-04 07:06:12 +00:00
Matthias Clasen
b540c366cc Add docs for the row-activated signal. (#324044, Davyd Madeley)
2005-12-14  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtktreeview.c (gtk_tree_view_class_init): Add docs
	for the row-activated signal.  (#324044, Davyd Madeley)
2005-12-14 18:12:36 +00:00
Matthias Clasen
da6a0bf6d8 Use the correct window when synthesizing the key event. (#323077, Sadrul
2005-12-07  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtktreeview.c (gtk_tree_view_key_press): Use the correct
	window when synthesizing the key event.  (#323077,
	Sadrul Habib Chowdhury)

	(gtk_tree_view_search_key_press_event): Also listen for
	GDK_ISO_Left_Tab.  (#323077, Sadrul Habib Chowdhury)
2005-12-07 17:09:54 +00:00
Matthias Clasen
4174446a6d Fix refcounting issues with new_event and its window.
2005-12-06  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtktreeview.c (gtk_tree_view_key_press): Fix refcounting
	issues with new_event and its window.
2005-12-06 18:03:50 +00:00
Matthias Clasen
eb79da2f53 Free new_event after sending it to the search entry. (#323209, Crispin
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-12-05 20:12:33 +00:00
Matthias Clasen
924765a2fe Properly handle model changes in GtkTreeSelection: (#322569, Milosz
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-29 19:34:15 +00:00
Matthias Clasen
7014ef0032 Fix two memory handling problems in GtkTreeView: (#322350, Søren
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-11-27 20:36:15 +00:00
Tim Janik
fbb2e3f4f5 deprecated floating/sink API and implemented it in terms of the GObject
Wed Nov 23 18:55:47 2005  Tim Janik  <timj@imendio.com>

        * gtk/gtkobject.[hc]: deprecated floating/sink API and implemented it
        in terms of the GObject floating/sink API.

        * gtk/gtkaboutdialog.c:
        * gtk/gtkaction.c:
        * gtk/gtkcellview.c:
        * gtk/gtkclist.c:
        * gtk/gtkcolorsel.c:
        * gtk/gtkcombobox.c:
        * gtk/gtkfilechooserdefault.c:
        * gtk/gtkiconview.c:
        * gtk/gtkinvisible.c:
        * gtk/gtkitemfactory.c:
        * gtk/gtklayout.c:
        * gtk/gtkmenu.c:
        * gtk/gtkmenutoolbutton.c:
        * gtk/gtknotebook.c:
        * gtk/gtkprogress.c:
        * gtk/gtkrange.c:
        * gtk/gtkspinbutton.c:
        * gtk/gtkstatusicon.c:
        * gtk/gtktext.c:
        * gtk/gtktextview.c:
        * gtk/gtktoolbar.c:
        * gtk/gtktoolbutton.c:
        * gtk/gtktoolitem.c:
        * gtk/gtktreeitem.c:
        * gtk/gtktreeview.c:
        * gtk/gtktreeviewcolumn.c:
        * gtk/gtkuimanager.c:
        * gtk/gtkviewport.c:
        * gtk/gtkwidget.c:
        * gtk/gtkwindow.c:
        ported to use GObject's g_object_ref_sink().

        * gtk/gtkcolorsel.c:
        * gtk/gtkfilechooserdefault.c:
        * gtk/gtkaboutdialog.c:
        fixed compiler warnings.
2005-11-23 18:06:58 +00:00
Matthias Clasen
b94e9ee56a Another erroneous semicolon.
2005-11-10  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtktreeview.c (gtk_tree_view_motion_resize_column): Another
	erroneous semicolon.
2005-11-10 17:57:14 +00:00
Matthias Clasen
cfd7c13b6c Implement a getter for headers-clickable. (#163851, Richard Hult)
2005-11-10  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtktreeview.c: Implement a getter for headers-clickable.
	(#163851, Richard Hult)
2005-11-10 14:18:45 +00:00
Matthias Clasen
96335d4326 Handle Shift-G to go to the previous match, like firefox. (#320061,
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-28 15:13:54 +00:00
Matthias Clasen
cfaa87847a Return FALSE, so we don't flush repeatedly. (#319151, Alexander Larsson)
2005-10-28  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtktreeview.c (gtk_tree_view_search_entry_flush_timeout): Return
	FALSE, so we don't flush repeatedly.  (#319151, Alexander Larsson)
2005-10-28 13:53:16 +00:00
Matthias Clasen
18f32d04d2 Be more careful about initializing cell_area. (#319382, Tommi Komulainen)
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-27 04:51:25 +00:00
Matthias Clasen
ec76057b9b Don't crash on duplicate destroy. (#318953, Gustavo Carneiro)
2005-10-26  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtktreeview.c (gtk_tree_view_destroy): Don't crash
	on duplicate destroy.  (#318953, Gustavo Carneiro)
2005-10-26 19:47:48 +00:00
Michael Natterer
d25d65852f check for the widget being realized, in addition to being visible, to
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-10-22 21:08:23 +00:00
Matthias Clasen
463aab93dd Various cleanups. (#315360, Kjartan Maraas)
2005-09-13  Matthias Clasen  <mclasen@redhat.com>

	* gtk/*.c: Various cleanups.  (#315360, Kjartan Maraas)
2005-09-13 19:57:42 +00:00
Matthias Clasen
676b09e798 Silently return NULL if the widget is not realized. (#316023, Guillaume
2005-09-13  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtktreeview.c (gtk_tree_view_create_row_drag_icon):
	* gtk/gtkiconview.c (gtk_icon_view_create_drag_icon): Silently
	return NULL if the widget is not realized.  (#316023,
	Guillaume Cottenceau)
2005-09-13 13:33:01 +00:00
Matthias Clasen
af89d145f7 Use gdk_atom_intern_static_string() where appropriate.
* gtk/*.c:  Use gdk_atom_intern_static_string() where
	appropriate.
2005-09-11 05:48:27 +00:00
Matthias Clasen
d8b026adb0 Document memory handling. (#314975, Torsten Schoenfeld)
2005-09-09  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtktreeview.c (gtk_tree_view_get_visible_range): Document
	memory handling.  (#314975, Torsten Schoenfeld)
2005-09-09 16:24:49 +00:00
Matthias Clasen
94eec04267 Intern some more strings.
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-09-01 05:11:46 +00:00
Matthias Clasen
f4bbe8f0de Also intern static strings passed to g_object_set_data() 2005-08-31 17:58:55 +00:00
Matthias Clasen
c09cc89317 Intern type names in code generated by glib-mkenums, too.
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.
2005-08-31 16:53:43 +00:00
Jonathan Blandford
320c78ce86 clear scroll_to_path if the model changes.
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-20 20:16:34 +00:00
Matthias Clasen
445b61e3e7 Return FALSE if the tree is empty. (#313891, Guillaume Cottenceau)
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-19 14:05:32 +00:00
Kristian Rietveld
48729ed118 queue a draw for the entire widget if any column changes width. (Fixes
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-08-11 17:47:18 +00:00
Kristian Rietveld
a6ecb70b14 new function. (fixes #105252, suggestion from Mikael Hallendal).
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 23:05:27 +00:00
Kristian Rietveld
7a02c5b508 paint a flat box on the area the treeview got allocated extra vertically
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 19:14:15 +00:00
Kristian Rietveld
faf2d31864 let's take the MIN of width and max_width here, not width and max_width !=
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 14:28:02 +00:00
Kristian Rietveld
22554a161f when !separator, don't add the focus_line_width to width/height (happens
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-13 11:57:10 +00:00
Kristian Rietveld
78c52d7141 add binding entry for ctrl + backspace (move focus to parent without
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-11 18:52:33 +00:00
Kristian Rietveld
4b28e78a48 remove unneeded check for negative window_y.
2005-07-10  Kristian Rietveld  <kris@gtk.org>

	* gtk/gtktreeview.c (gtk_tree_view_move_cursor_page_up_down): remove
	unneeded check for negative window_y.
2005-07-10 17:19:01 +00:00
Kristian Rietveld
53db7cc902 also move to the next match when ctrl+g is pressed. (#156657, Matt T.
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 15:55:10 +00:00
Kristian Rietveld
2ebd7d1567 rework function to make page up/down behave the same as in GtkTextView.
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-10 15:47:18 +00:00
Kristian Rietveld
6a5ac16898 when open_all is TRUE, traverse the newly built tree to emit row_expanded
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-09 13:20:10 +00:00
Kristian Rietveld
7f5b9100ed Fixes #165034, reported by Jorn Baayen.
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-08 19:17:10 +00:00
Kristian Rietveld
45c7c2b0ca in the 'main' expose loop, add back the calls to _set_cell_data removed
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-07-05 21:11:32 +00:00
Matthias Clasen
6cc79068cf Stop column header drag operations if the grab is broken.
2005-06-26  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtktreeview.c (gtk_tree_view_grab_broken): Stop column
	header drag operations if the grab is broken.
2005-06-26 06:51:55 +00:00