Commit Graph

879 Commits

Author SHA1 Message Date
Colin Walters
eebb16eb1a Add length to gtk_tree_path_get_indices
The old version wasn't introspectable as it didn't have a length
return parameter.  Also, delete gtk_tree_path_get_indices_with_depth,
since it's no longer needed.
2010-06-28 13:50:36 -04:00
Tristan Van Berkom
17516dc83c Exposed GtkTreeView's internal GtkTreeSelection for builder files 2010-06-25 12:15:49 -04:00
John (J5) Palmieri
256759a3b7 gtk_tree_view_get_model: return value annotated transfer none 2010-05-27 16:58:52 -04:00
Matthias Clasen
bd4609b140 Merge the xi2-for-master branch 2010-05-25 18:38:44 -04:00
John (J5) Palmieri
57754edef6 add a transfer none annotation to gtk_tree_view_get_selection
* it returns the selection from its priv structure without reffing
2010-05-25 11:49:10 -04:00
Javier Jardón
b18b33ae82 Revert "Forward-port a GtkAdjustment compatibility fix"
In the early 2.14.x releases, GtkAdjustment was changed to enforce
that values are restricted to the range [lower, upper - page_size].
This has always been the documented behaviour, and the recommended
practice is to set page_size to 0 when using adjustments for simple
scalar values, like in a slider or spin button.
Due to the large number of applications that are affected by this
change, the behaviour has been reverted to the old behaviour in
2.14.3, with an explicit warning that this change will be
reintroduced in 2.90.

This reverts commit e6373738fc.

https://bugzilla.gnome.org/show_bug.cgi?id=619474
2010-05-24 15:39:30 +02:00
Kristian Rietveld
f3fa17a16a Bug 565559 - Incorrect leave-notify signals for treeview
Set enter and leave notify mask on header window.

Extract from a patch by Hans van Hintum.
2010-05-12 12:15:48 +02:00
Alan Knowles
ee357cf885 Fix various gir annotations on tree API
Just add (out) tags where needed to generate valid gir.
2010-05-11 13:40:15 +08:00
Christian Dywan
11e97600f0 Remove deprecated GtkTreeView functions 2010-05-03 01:39:50 +02:00
Emmanuele Bassi
621b415e5b tree-view: Use gtk_widget_send_focus_change()
Remove the second (and last) internal user of the GTK_HAS_FOCUS flag.

https://bugzilla.gnome.org/show_bug.cgi?id=593671
2010-04-26 18:59:24 +01:00
Javier Jardón
32b9aeaadd Don't use GTK_WIDGET_STATE in internal code anymore
Use gtk_widget_get/set_state() instead

https://bugzilla.gnome.org/show_bug.cgi?id=69872
2010-03-09 02:40:17 +01:00
Javier Jardón
74ed719fa4 Don't use GTK_WIDGET_*SET_FLAGS (wid, GTK_MAPPED)
Use new API instead: gtk_widget_set_mapped ()

https://bugzilla.gnome.org/show_bug.cgi?id=69872
2010-03-06 12:02:21 +01:00
Javier Jardón
1934de4b65 Don't use GTK_WIDGET_*SET_FLAGS (wid, GTK_REALIZED)
Use new API instead: gtk_widget_set_realized ()

https://bugzilla.gnome.org/show_bug.cgi?id=69872
2010-03-06 11:51:33 +01:00
Javier Jardón
16a59ad912 Deprecate widget flag: GTK_WIDGET_REALIZED
Use gtk_widget_get_realized() instead

https://bugzilla.gnome.org/show_bug.cgi?id=69872
2010-03-03 20:41:05 +01:00
Javier Jardón
1fe7d3cefd Deprecate widget flag: GTK_WIDGET_MAPPED
Use gtk_widget_get_mapped() instead.

https://bugzilla.gnome.org/show_bug.cgi?id=69872
2010-03-03 20:19:03 +01:00
Javier Jardón
214a023e91 Deprecate widget flag: GTK_WIDGET_VISIBLE
Use gtk_widget_get_visible() instead

https://bugzilla.gnome.org/show_bug.cgi?id=69872
2010-03-01 07:52:07 +01:00
Javier Jardón
4232115e22 Deprecate widget flag: GTK_WIDGET_HAS_FOCUS
Use gtk_widget_has_focus() instead

https://bugzilla.gnome.org/show_bug.cgi?id=69872
2010-03-01 06:11:01 +01:00
Javier Jardón
a27d5a2c9e Deprecate widget flag: GTK_WIDGET_IS_SENSITIVE
Use gtk_widget_is_sensitive() instead

https://bugzilla.gnome.org/show_bug.cgi?id=69872
2010-03-01 05:32:51 +01:00
Matthias Clasen
1e381138f3 Correct annotations for gtk_tree_view_get_path_at_pos
Patch by Alan Knowles, bug 609514.
2010-02-23 12:51:45 -05:00
Johan Dahlin
fe85272112 [annotations] Add allow-none
This commit was created using a script that searched for all docstrings
containing a parameter and the string 'or %NULL'.
Gdk backends and demos excluded as they are not part of a public API

https://bugzilla.gnome.org/show_bug.cgi?id=610474
2010-02-19 17:57:51 -02:00
Michael Natterer
07dc2f6c35 gtk: fix crash in _gtk_rbtree_find_offset() called from update_prelight()
Move the check for tree_view->priv->tree being NULL into update_prelight()
so the function will never call _gtk_rbtree_find_offset() on a NULL rbtree.
2010-02-06 15:57:15 +01:00
Claudio Saavedra
52acceef56 GtkTreeView: plug a leaking GtkTreeRowReference
This is exposed by overshooting in a HildonPannableArea. Leaking
a GtkTreeRowReference also means leaking the whole model, since
the GtkTreeModel reference count is increased for each row
reference.

Fixes bug #607770 - Leak in GtkTreeView with HildonPannableArea
2010-01-22 16:53:33 +02:00
Kristian Rietveld
2f73fb76c1 Bug 607322 - Double-click doesn't work if the item is selected in...
Slight correction to fix for #596473.
2010-01-18 22:22:30 +01:00
Javier Jardón
56a893ca8c Deprecate widget flag: GTK_WIDGET_CAN_FOCUS
https://bugzilla.gnome.org/show_bug.cgi?id=69872
2010-01-07 10:05:08 +01:00
Christian Dywan
bb1824c131 Deprecate flag macros for toplevel, state, no window and composite child
Deprecate widget flag macros GTK_WIDGET_STATE, GTK_WIDGET_SAVED_STATE,
GTK_WIDGET_FLAGS, GTK_WIDGET_TOPLEVEL, GTK_WIDGET_NO_WINDOW and
GTK_WIDGET_COMPOSITE_CHILD.

Also deprecate the type macros GTK_WIDGET_TYPE, GTK_OBJECT_TYPE_NAME and
GTK_OBJECT_TYPE which have become redundant.

Instances of GTK_WIDGET_TOPLEVEL are replaced with gtk_widget_is_toplevel,
GTK_WIDGET_TYPE is replaced with G_OBJECT_TYPE, GTK_WIDGET_COMPOSITE_CHILD
is replaced with use of the "composite-child" property and uses of
GTK_WIDGET_NO_WINDOW are adjusted to use gtk_widget_get_has_window.

Uses of GTK_WIDGET_SAVED_STATE and GTK_WIDGET_FLAGS inside GtkWidget are
changed to direct flag usage.

Documentation is updated to refer to gtk_widget_set_has_window and
gtk_widget_get_has_window.

Gail and tests are updated as well.

Fixes: https://bugzilla.gnome.org/show_bug.cgi?id=69872
2010-01-04 07:57:05 +01:00
Kristian Rietveld
436855210e Unset expander_column when expander column is removed from tree view 2009-12-28 21:34:17 +01:00
Kristian Rietveld
acb6f4ff33 Fix call to update_prelight()
Seems like some minus signs sneaked in while diffing and reapplying...
Fixes regression noted in 480065.
2009-12-23 08:33:10 +01:00
Kristian Rietveld
f59294fd93 Correct problems with earlier fix for bug #480065
Initialize event_last_[xy] to out of range coordinates and also update
these values in enter and leave notify.  Fix up calls to
update_prelight() from size allocate.  Unconditionally doing these calls
caused problems with hover selection.  Now we only do this call when
the "width before the expander column" has changed.  (Which might be
awkward, but it is the best heuristic I could come up with so far).
2009-12-21 22:42:15 +01:00
Kristian Rietveld
f223577a88 Bug 480065 - wrong tree collapsed (or expanded) after having scrolled
Commit again after revert.

Store (x, y) of last motion event.  From
gtk_tree_view_adjustment_changed(), call prelight_or_select() so that
the prelight is recalculated.  We do the same from
gtk_tree_view_size_allocate() for the case that clicking on an expander
shows new rows that resize the column(s) left of the expander.  This
means that the expander is moved horizontally, in such a case the
prelight also has to be reconsidered.
2009-12-21 22:42:15 +01:00
Colin Walters
6529c07614 [introspection] Merge in Gtk-custom.c annotations
The Gtk-custom.c file in gir-repository contained a number of
introspection annotations.  Merge those into the GTK source files.

Some documentation was moved from the tmpl/ files to accomodate
the addition of annotations.
2009-12-16 17:22:01 -02:00
Benjamin Otte
9647285441 Revert dd511e825a
The patch completely breaks entry completion - as can be seen when using
epiphany. Bug 480065 has been reopened.
2009-12-16 11:48:11 +01:00
Kristian Rietveld
2ef9b989bf Bug 596473 - Second double-click of GtkTreeView row doesn't emit...
Rework double click handling in GtkTreeView.  We cannot blindly use
the 2BUTTON_PRESS and 3BUTTON_PRESS events.  In case a user does two
fast double clicks, we receive a 3BUTTON_PRESS and BUTTON_PRESS.  We
cannot easily deduce two double clicks from this.

We have removed the bookkeeping using row references of the last paths
clicked.  Instead we monitor event time, (x, y) coordinates and compare
against double-click-time and double-click-distance ourselves.
2009-11-27 13:48:16 +01:00
Kristian Rietveld
dd511e825a Bug 480065 - wrong tree collapsed (or expanded) after having scrolled
Store (x, y) of last motion event.  From
gtk_tree_view_adjustment_changed(), call prelight_or_select() so that
the prelight is recalculated.  We do the same from
gtk_tree_view_size_allocate() for the case that clicking on an expander
shows new rows that resize the column(s) left of the expander.  This
means that the expander is moved horizontally, in such a case the
prelight also has to be reconsidered.
2009-11-27 13:48:16 +01:00
Yevgen Muntyan
3c510f028f Use standard mac shortcuts
This changes Ctrl-X, Ctrl-C, etc. to Cmd-X, Cmd-C, etc. Also,
Alt-Left and Alt-Right in text widgets bound to Ctrl-Left and
Ctrl-Right actions

https://bugzilla.gnome.org/show_bug.cgi?id=530351
2009-10-26 00:03:05 +01:00
Kristian Rietveld
f77042aae2 Avoid recursive calls to gtk_tree_view_top_row_to_dy()
Commit 3f306a4042 made it possible for
gtk_tree_view_top_row_to_dy() to be called recursively.  (In a different
way than was already guarded for).  This caused a single test case in
the scrolling test suite to fail.  We now also guard for recursive calls at
the beginning of gtk_tree_view_top_row_to_dy().
2009-09-06 20:26:09 +02:00
Kristian Rietveld
5ec80eb5ba Recalculate heights when a (new) separator func is set on GtkTreeView 2009-09-04 17:08:29 +02:00
Kristian Rietveld
3f306a4042 Have tree view process exposes after adjustments have been updated
This was removed long ago by the patch in bug 101235.  On a hindsight,
all other scrollable widgets are processing exposes at this point, which
completely makes sense to me, so I am putting it back.
2009-09-04 14:06:58 +02:00
Kristian Rietveld
44469e4684 Make gtk_tree_view_real_set_cursor() handle non-existing paths
Such paths (eg. a child node that is collapsed) should be ignored.  This
is fixed by checking the return value of _gtk_tree_view_find_node(),
which returns a partial return value (the parent node) when it returns
TRUE.  Also added a unit test.
2009-08-28 11:04:54 +02:00
Kristian Rietveld
ec7187e039 Bug 543310 - set_enable_tree_lines doesn't work when a cellrenderer...
Reorder drawing in gtk_tree_view_bin_expose() so that the tree lines are
drawn after the cells have been drawn.  This is because cell-background
is handled in the cell renderer, so the tree lines need to be drawn
after this.
2009-08-27 18:12:54 +02:00
Kristian Rietveld
786b3914cd Bug 588199 - GtkTreeView rendering glitch while using a default ...
Contrary to what was believed before, do_validate_rows() does need to
queue a normal resize (including a redraw) when it has to.  The redraw
is required because of the size of the tree has changed because new
row(s) have been validated.
2009-08-27 18:12:54 +02:00
Kristian Rietveld
4449acbb82 Remove broken logic in backwards walks in validate_visible_area()
In validate_visible_area() it was assumed that gtk_tree_path_prev()
would always return the correct path of the preceding node.  This is
obviously not true.  The if-clause has been removed so that we now
always use _gtk_tree_view_find_path() to get the path from the tree,
node.
2009-08-23 22:06:16 +02:00
Kristian Rietveld
9976554c6e Bug 528283 - Problems when using PageUp & PageDown to navigate...
Patch from Jonathan Matthew to make focus grabbing of page up/down,
home/end and left/right movements consistent with up/down.
2009-08-23 22:06:15 +02:00
Kristian Rietveld
a79ef0866b Bug 555109 – selection broken when typeahead active
gtk_tree_view_enter_notify() now "ignores" the synthesized crossing
events.  The synthesized crossing events always have (0, 0) as
coordinates, which messes things up.  This patch does not fix all issues,
at least it makes the behavior much more reasonable again.  Watch bug
555109 for further discussion on the issue.
2009-07-30 20:24:31 +02:00
Kristian Rietveld
069a593b0f Bug 539377 – Unnecessary warnings when GtkTreeView is not realized
Adapt gtk_tree_view_get_path_at_pos() and
gtk_tree_view_get_drag_dest_row() to just return FALSE when bin_window
is NULL and not hit a warning.  Makes this case consistent with the tree
view not having a model.  Documentation has been updated to clarify
this, unit test has been added.

Fixes bug 539377, based on a patch by Bjorn Lindqvist.
2009-07-30 20:24:31 +02:00
Kristian Rietveld
ff10f9ce02 Bug 498010, 546005 - fix assertion in gtk_tree_view_set_cursor_on_cell
Instead of failing with warning on !tree_view->priv->tree, return
silently when tree_view->priv->model is NULL.  Clarified in the
documentation that for invalid paths (and every path is invalid when no
model is set), the function will fail silently although the current
cursor will be unset.

Fixes bugs 498010 and 546005.
2009-07-30 20:24:31 +02:00
Kristian Rietveld
c035c122e2 Remove unused dirty iter discovery functions
gtk_tree_view_discover_dirty_iter() and gtk_tree_view_discover_iter()
have been in the tree forever, but unused since 1.3.8 or so.  I guess we
no longer need them, so removed them.  Fixes a compiler warning as well.
2009-07-30 12:02:18 +02:00
Paolo Borelli
c564b3ef2b Microoptimization in interactive search handling 2009-07-20 15:54:48 +02:00
Paolo Borelli
48f1b45b62 Bug 588943 – set correct selection before emitting cursor-changed when searching
Make sure the correct selection is set when emitting cursor-changed
during an interactive search
2009-07-20 15:54:35 +02:00
Benjamin Otte
33ada9e938 Bug 588273 - Make number of validated rows depend on time, not row count
Previously, do_validate_rows() validated 300 rows per iteration. While
this is usually not problematic, as the typical tree view contains less
than 100 rows. Tree views with a lot of columns or complex cell
renderers could take inacceptably long, like:
- Epiphany's location bar entry completion has multiline and marked up
  text in every cell. Validating a single row took ~1.5ms here.
- In the list view in Nautilus, When enabling all columns, validating a
  single row would take ~3ms.
With 300 rows per iteration, that made those examples take 500ms/1s in a
signle main loop callback, and this obviously caused responsiveness
problems.

Now the code uses a timer and limits the time for validating rows to
30ms. This can cause less lines to be invalidated per call, so the
function might be called more often, but generally results in more
responsive applications.
2009-07-17 21:35:32 +02:00
Benjamin Otte
6c18c25adb check for allowed NULL inside g_return_if_fail() statements
This patch replaces

if (foo != NULL)
  g_return_if_fail (GTK_IS_FOO (foo));

with

g_return_if_fail (foo == NULL || GTK_IS_FOO (foo));
2009-06-27 11:31:13 +02:00
Benjamin Otte
1a385c50f0 fix compile warnings
Fallout from running make CFLAGS="-Werror"; mostly missing casts and
constness issues.
2009-06-17 10:28:03 +02:00
Federico Mena Quintero
2b3de3dd75 bgo#580560 - Make Backspace work in the file chooser to to to the parent directory
GtkFileChooserDefault actually implements a binding signal for
Backspace, to make it go to the parent directory.  However,
GtkTreeView was eating our Backspace, and thus the file chooser was
not getting a chance to execute its binding signal.

GtkTreeView implements a Backspace binding itself, which it uses to
move to the parent node of the current cursor node.  However, the
binding handler would return TRUE even if there was no parent to the
current node.  Now the binding handler only returns TRUE if it
actually changed the cursor.

Additionally, gtk_tree_view_key_press() sees if no bindings handled a
key press; in that case, it re-sends the key press to the treeview's
search entry.  However, sending a Backspace to an empty entry makes
the entry beep.  Thus, we add a flag that gets set from GtkTreeView's
Backspace binding handler, to tell gtk_tree_view_key_press() when it
should *not* re-emit the key press on the search entry.  Sort of,
"yeah, I didn't handle this key press, but I don't want you to send it
to the search entry, either!".

Signed-off-by: Federico Mena Quintero <federico@novell.com>
2009-06-15 12:37:07 -05:00
Matthias Clasen
e6373738fc Forward-port a GtkAdjustment compatibility fix
We reverted GtkAdjustment to its traditional behaviour wrt. to
clamping in 2.14.3, but the fix was lost between 2.14 and 2.16.
2009-05-03 13:04:06 -04:00
Matthias Clasen
2ca507fbe7 Bug 570824 – [a11y] TreeView is not keyboard (re)focusable after
selecting a cell in a non-sortable column

        * gtk/gtktreeview.c (gtk_tree_view_header_focus): Don't grab
        focus to a header button if it is not focusable. Problem reported
        by Joanmarie Diggs


svn path=/trunk/; revision=22316
2009-02-11 18:53:24 +00:00
Philip Withnall
b33a3d925e Small documentation fix.
2009-01-28  Philip Withnall  <philip@tecnocode.co.uk>

	* gtk/gtktreeview.c: Small documentation fix.


svn path=/trunk/; revision=22247
2009-01-28 20:35:35 +00:00
Claudio Saavedra
08b4777ae6 Use gtk-doc syntax to refer to properties in the docstrings.
2009-01-25  Claudio Saavedra  <csaavedra@igalia.com>

	* gtk/gtktreeview.c: Use gtk-doc syntax to refer to properties in
	the docstrings.


svn path=/trunk/; revision=22213
2009-01-24 22:54:53 +00:00
Claudio Saavedra
758cb60ee4 improve ::search-column property description.
2009-01-24  Claudio Saavedra  <csaavedra@igalia.com>

	* gtk/gtktreeview.c: (gtk_tree_view_class_init):
	improve ::search-column property description.


svn path=/trunk/; revision=22207
2009-01-24 21:00:12 +00:00
Matthias Clasen
5c99971a67 Fix typos
svn path=/trunk/; revision=22190
2009-01-23 05:54:02 +00:00
Sven Herzberg
2b31f26827 Document the "set-scroll-adjustments" signal
2008-12-11  Sven Herzberg  <sven@imendio.com>

	Document the "set-scroll-adjustments" signal

	Reviewed by Kristian Rietveld.

	* gtk/gtkiconview.c,
	* gtk/gtklayout.c,
	* gtk/gtktextview.c,
	* gtk/gtktreeview.c,
	* gtk/gtkviewport.c: added proper documentation for the signal


svn path=/trunk/; revision=21871
2008-12-11 13:09:27 +00:00
Matthias Clasen
31774edd4a Bug 554453 – "typeahead find" widget of GtkTreeView appears on wrong
2008-11-29  Matthias Clasen  <mclasen@redhat.com>

        Bug 554453 – "typeahead find" widget of GtkTreeView appears on
        wrong monitor in a multi-head environment

        * gtk/gtktreeview.c (gtk_tree_view_ensure_interactive_directory):
        Make sure the typeahead window follows screen changes of the
        treeview. Noticed by Rainer Stransky



svn path=/trunk/; revision=21835
2008-11-30 06:05:23 +00:00
Federico Mena Quintero
d9c8224a91 bnc447004 - Flip tree lines around in the right-to-left case
2008-11-29  Federico Mena Quintero  <federico@novell.com>

	* gtk/gtktreeview.c (gtk_tree_view_bin_expose): If tree lines are
	enabled, flip them around for the right-to-left case.  Fixes
	https://bugzilla.novell.com/show_bug.cgi?id=447004.  Patch by
	Ricardo Cruz <rpmcruz@alunos.dcc.fc.up.pt>

Signed-off-by: Federico Mena Quintero <federico@novell.com>

svn path=/trunk/; revision=21829
2008-11-29 22:15:37 +00:00
Murray Cumming
093d425393 gtk_icon_view_set_tooltip_row(), gtk_icon_view_set_tooltip_item():
2008-10-20  Murray Cumming  <murrayc@murrayc.com>

* gtk/gtkiconview.c: gtk_icon_view_set_tooltip_row(), 
gtk_icon_view_set_tooltip_item():
* gtk/gtktreeview.c: gtk_icon_view_set_tooltip_row(), 
gtk_icon_view_set_tooltip_cell():
Documentation: Mention the simple set_tooltip_column() 
alternative.

svn path=/trunk/; revision=21689
2008-10-20 12:11:05 +00:00
Christian Dywan
0c5bfe5f2b Bug 541391 – Unfocussable Treeview swallows focus
* gtk/gtktreeview.c (grab_focus_and_unset_draw_keyfocus),
(gtk_tree_view_focus): Honor GTK_WIDGET_CAN_FOCUS properly

svn path=/trunk/; revision=21507
2008-09-24 08:19:51 +00:00
Michael Natterer
2fc992e0f5 small formatting fix.
2008-08-21  Michael Natterer  <mitch@imendio.com>

	* gtk/gtktreeview.c (gtk_tree_view_realize): small formatting fix.


svn path=/trunk/; revision=21178
2008-08-21 11:42:32 +00:00
Michael Natterer
e0bbf16989 get rid of the deprecated aliases NONE and BOOL.
2008-08-13  Michael Natterer  <mitch@imendio.com>

	* gtk/gtkmarshalers.list: get rid of the deprecated aliases NONE
	and BOOL.

	* gtk/gtkdialog.c
	* gtk/gtkentrycompletion.c
	* gtk/gtkmenuitem.c
	* gtk/gtkoldeditable.c
	* gtk/gtkrange.c
	* gtk/gtktreeview.c
	* gtk/gtkwidget.c: changed accordingly.


svn path=/trunk/; revision=21111
2008-08-13 18:44:11 +00:00
Michael Natterer
d9d3379698 gtk/gtkaccellabel.c gtk/gtkcalendar.c gtk/gtkclist.c gtk/gtkentry.c
2008-08-12  Michael Natterer  <mitch@imendio.com>

	* gtk/gtkaccellabel.c
	* gtk/gtkcalendar.c
	* gtk/gtkclist.c
	* gtk/gtkentry.c
	* gtk/gtkeventbox.c
	* gtk/gtkfilechooserbutton.c
	* gtk/gtkfilechooserdefault.c
	* gtk/gtkhandlebox.c
	* gtk/gtkhsv.c
	* gtk/gtkiconview.c
	* gtk/gtkimage.c
	* gtk/gtklayout.c
	* gtk/gtklistitem.c
	* gtk/gtkmenuitem.c
	* gtk/gtkmessagedialog.c
	* gtk/gtknotebook.c
	* gtk/gtkpaned.c
	* gtk/gtkpathbar.c
	* gtk/gtkplug.c
	* gtk/gtkprintunixdialog.c
	* gtk/gtkrange.c
	* gtk/gtkrecentchooserdefault.c
	* gtk/gtkruler.c
	* gtk/gtksocket.c
	* gtk/gtktext.c
	* gtk/gtktextview.c
	* gtk/gtktoolbar.c
	* gtk/gtktreeitem.c
	* gtk/gtktreeview.c
	* gtk/gtkviewport.c
	* gtk/gtkwin32embedwidget.c: chain up unconditionally in
	realize(), unrealize(), map(), unmap(), style_set(),
	key_press_event() and size_request()


svn path=/trunk/; revision=21088
2008-08-12 09:44:32 +00:00
Michael Natterer
e18d3c6fd3 consistently chain up using GTK_FOO_CLASS(parent_class)->bar(instance)
2008-08-12  Michael Natterer  <mitch@imendio.com>

	* gtk/*.c: consistently chain up using
	GTK_FOO_CLASS(parent_class)->bar(instance) instead of
	(*GTK_FOO_CLASS(parent_class))->bar(instance).


svn path=/trunk/; revision=21085
2008-08-12 09:06:34 +00:00
Sven Neumann
0ab00ebc67 gtk/gtkentry.c gtk/gtkentrycompletion.c gtk/gtkhandlebox.c
2008-08-11  Sven Neumann  <sven@gimp.org>

	* gtk/gtkentry.c
	* gtk/gtkentrycompletion.c
	* gtk/gtkhandlebox.c
	* gtk/gtkiconview.c
	* gtk/gtkimcontext.c
	* gtk/gtkinputdialog.c
	* gtk/gtktreeview.c: use canonical signal names.


svn path=/trunk/; revision=21067
2008-08-11 12:54:57 +00:00
Sven Neumann
e601636ffb some more signals I missed in my last commit
svn path=/trunk/; revision=21044
2008-08-08 13:58:42 +00:00
Sven Neumann
f47a4a2232 gtk/gtktree.c gtk/gtktreemodel.c gtk/gtktreesortable.c gtk/gtktreeview.c
2008-08-08  Sven Neumann  <sven@gimp.org>

	* gtk/gtktree.c
	* gtk/gtktreemodel.c
	* gtk/gtktreesortable.c
	* gtk/gtktreeview.c
	* gtk/gtkuimanager.c
	* gtk/gtkviewport.c: use canonical signal names.


svn path=/trunk/; revision=21043
2008-08-08 13:53:05 +00:00
Sven Neumann
867a82c36e gtk/gtkadjustment.c gtk/gtkclist.c gtk/gtkcolorsel.c gtk/gtkiconview.c
2008-08-08  Sven Neumann  <sven@gimp.org>

	* gtk/gtkadjustment.c
	* gtk/gtkclist.c
	* gtk/gtkcolorsel.c
	* gtk/gtkiconview.c
	* gtk/gtklayout.c
	* gtk/gtkprogress.c
	* gtk/gtkrange.c
	* gtk/gtkspinbutton.c
	* gtk/gtktext.c
	* gtk/gtktextview.c
	* gtk/gtktreeview.c
	* gtk/gtkviewport.c: use the canonical signal name 
"value-changed"
	instead of "value_changed".


svn path=/trunk/; revision=21041
2008-08-08 13:25:18 +00:00
Michael Natterer
8371b465dc gtk/gtkclist.c gtk/gtkcontainer.c gtk/gtkfilechooserbutton.c
2008-08-07  Michael Natterer  <mitch@imendio.com>

	* gtk/gtkclist.c
	* gtk/gtkcontainer.c
	* gtk/gtkfilechooserbutton.c
	* gtk/gtkgamma.c
	* gtk/gtkmenutoolbutton.c
	* gtk/gtkoptionmenu.c
	* gtk/gtkradiobutton.c
	* gtk/gtkradiomenuitem.c
	* gtk/gtktipsquery.c
	* gtk/gtktree.c
	* gtk/gtktreeview.c: chain up unconditionally in destroy().

	* gtk/gtkhandlebox.c: remove empty destroy() implementation.


svn path=/trunk/; revision=21035
2008-08-07 14:12:32 +00:00
Michael Natterer
3d75f27801 gtk/gtkcombobox.c gtk/gtkiconview.c gtk/gtkrange.c gtk/gtkscrolledwindow.c
2008-08-06  Michael Natterer  <mitch@imendio.com>

	* gtk/gtkcombobox.c
	* gtk/gtkiconview.c
	* gtk/gtkrange.c
	* gtk/gtkscrolledwindow.c
	* gtk/gtktreeview.c: remove CLAMPing from values passed to
	gtk_adjustment_set_value() since it does it right now.


svn path=/trunk/; revision=21021
2008-08-06 11:32:33 +00:00
Björn Lindqvist
8303b4437e Bug 540379 – gtk_tree_view_enable_model_drag_dest and
2008-08-03  Björn Lindqvist  <bjourne@gmail.com>

	Bug 540379 – gtk_tree_view_enable_model_drag_dest and
	gtk_tree_view_enable_model_drag_source unsets reorderable property

	* gtk/gtktreeview.c: Improve docstrings regarding reorderable
	property.

svn path=/trunk/; revision=20952
2008-08-03 19:38:21 +00:00
Matthias Clasen
0b66b244a4 Bug 539733 – No way to control treeview separator height
svn path=/trunk/; revision=20932
2008-08-02 04:32:12 +00:00
Kristian Rietveld
fd4a8411f0 Bug 543989 - Crash in gtk_tree_view_size_allocate_columns
2008-07-21  Kristian Rietveld  <kris@gtk.org>

	Bug 543989 - Crash in gtk_tree_view_size_allocate_columns

	* gtk/gtktreeview.c (gtk_tree_view_size_allocate_columns): check
	for width_changed != NULL.  (Patch by Josselin Mouette).


svn path=/trunk/; revision=20883
2008-07-21 13:32:05 +00:00
Kristian Rietveld
2cc1247433 Fix #316087.
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-07-11 14:17:49 +00:00
Matthias Clasen
cad36b3c42 Doc improvement
svn path=/trunk/; revision=20799
2008-07-07 00:08:00 +00:00
Johan Dahlin
d97cdbdf53 Include "config.h" instead of <config.h> Command used: find -name
2008-06-21  Johan Dahlin  <jdahlin@async.com.br>

    * *.[ch]: Include "config.h" instead of <config.h>
    Command used:
    find -name \*.[ch]|xargs perl -p -i -e 's/^#include <config.h>/#include "config.h"/g'
    Rubberstamped by Mitch and Tim


svn path=/trunk/; revision=20669
2008-06-22 14:28:52 +00:00
Johan Dahlin
9678ce2eb9 gdk_gc_set_dashes expects a list of gint8, not guint8.
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-19 14:07:28 +00:00
Michael Natterer
fe8a946e87 deprecate GtkDestroyNotify.
2008-06-18  Michael Natterer  <mitch@imendio.com>

	* gtk/gtktypeutils.h: deprecate GtkDestroyNotify.

	* gtk/gtkactiongroup.[ch]
	* gtk/gtkcombobox.[ch]
	* gtk/gtkcontainer.[ch]
	* gtk/gtkliststore.[ch]
	* gtk/gtkmain.[ch]
	* gtk/gtkmenu.c
	* gtk/gtkstock.[ch]
	* gtk/gtktreedatalist.[ch]
	* gtk/gtktreemodelfilter.[ch]
	* gtk/gtktreemodelsort.[ch]
	* gtk/gtktreeprivate.h
	* gtk/gtktreeselection.[ch]
	* gtk/gtktreesortable.[ch]
	* gtk/gtktreestore.[ch]
	* gtk/gtktreeview.[ch]
	* gtk/gtktreeviewcolumn.[ch]: s/GtkDestroyNotify/GDestroyNotify/g.


svn path=/trunk/; revision=20448
2008-06-18 09:12:32 +00:00
Christian Persch
7bc5628bbf Make gtk_tree_view_enable_model_drag_[source|dest] compatible with
* gtk/gtktreeview.c: (destroy_info), (set_destination_row),
	(gtk_tree_view_maybe_begin_dragging_row),
	(gtk_tree_view_set_reorderable),
	(gtk_tree_view_enable_model_drag_source),
	(gtk_tree_view_enable_model_drag_dest),
	(gtk_tree_view_unset_rows_drag_source),
	(gtk_tree_view_unset_rows_drag_dest): Make
	gtk_tree_view_enable_model_drag_[source|dest] compatible with
	gtk_drag_[source|dest]_add_*_targets. Bug #506853.

svn path=/trunk/; revision=20349
2008-06-10 12:33:22 +00:00
Christian Persch
65c22a11ed Use GSlice. Patch from bug #506853.
* gtk/gtktreeview.c: (gtk_tree_view_button_release_drag_column),
	(dest_row_free), (set_dest_row), (ensure_info),
	(gtk_tree_view_remove), (gtk_tree_view_put),
	(gtk_tree_view_set_column_drag_info): Use GSlice. Patch from
	bug #506853.

svn path=/trunk/; revision=20348
2008-06-10 12:28:57 +00:00
Kristian Rietveld
cd4a1fc680 Bug 536730 - memory corruption in gtktreeview
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 12:53:19 +00:00
Kristian Rietveld
898fe0c82f Bug 488119 - critical warnings from gtk_tree_view_get_visible_range
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-06-08 12:47:15 +00:00
Kristian Rietveld
f1405056f2 Bug 530146 - Setting non-string tooltip with
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-30 22:59:13 +00:00
Kristian Rietveld
e7df0579c2 Bug 449625 - crash in gtk_tree_view_real_move_cursor at gtktreeview.c:9641
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 14:47:50 +00:00
Kristian Rietveld
45f0ad8cf5 Bug 498010 - gtk_tree_view_set_cursor fails if model!=NULL.
2008-05-28  Kristian Rietveld  <kris@imendio.com>

	Bug 498010 - gtk_tree_view_set_cursor fails if model!=NULL.

	* gtk/gtktreeview.c (gtk_tree_view_set_cursor_on_cell): return if fail
	->priv->tree != NULL.  Suggestion from Stefan Kost.


svn path=/trunk/; revision=20208
2008-05-28 12:20:38 +00:00
Kristian Rietveld
1fa5cda0a9 Refactor expand/collapse timeout handling (amendment to bug 511217).
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
2008-05-28 09:26:13 +00:00
Matthias Clasen
6c993cf8d2 Bug 511217 - potential memory corruption after refreshing a tree_view
* gtk/gtktreeview.c (cancel_arrow_animation): Reset
        expanded_collapsed_node when canceling the animation.
        Patch by Nicholas Setton.


svn path=/trunk/; revision=20201
2008-05-28 00:33:49 +00:00
Matthias Clasen
2855f81636 Fixes
svn path=/trunk/; revision=20197
2008-05-27 23:02:02 +00:00
Matthias Clasen
fa4fb90ee6 Bug 523930 – sort -> search in gtktreeview.c
* gtk/gtktreeview.c (gtk_tree_view_set_search_column): Fix a doc
        glitch, pointed out by Björn Lindqvist.


svn path=/trunk/; revision=20159
2008-05-25 20:41:55 +00:00
Matthias Clasen
a364f9d31c Set window type hint on the search popup. (#522279, Danny Baumann)
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-03-15 04:51:48 +00:00
Michael Natterer
45debfb0ef gtk/gtkmenushell.c gtk/gtktable.c gtk/gtktext.c gtk/gtktipsquery.c
2008-02-27  Michael Natterer  <mitch@imendio.com>

	* gtk/gtkmenushell.c
	* gtk/gtktable.c
	* gtk/gtktext.c
	* gtk/gtktipsquery.c
	* gtk/gtktoolbar.c
	* gtk/gtktreeitem.c
	* gtk/gtktreeview.c
	* gtk/gtkviewport.c
	* gtk/gtkwin32embedwidget.c: remove g_return_if_fail() from
	private functions and virtual function implementations.


svn path=/trunk/; revision=19668
2008-02-27 11:30:10 +00:00
Kristian Rietveld
ddf4aa8b3e only queue a redraw if the rubber banding has actually been active.
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-13 11:53:35 +00:00
Kristian Rietveld
49f20887af guard against people deleting the row in question in the selection-changed
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 15:58:25 +00:00
Matthias Clasen
0509519d35 Unify the handling of various "Enter" keysyms all over the place.
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-02-12 15:51:09 +00:00
Michael Natterer
a362eecc4a gtk/gtkbutton.h gtk/gtkcellrenderer.h gtk/gtkimcontext.h gtk/gtkstyle.h
2008-01-25  Michael Natterer  <mitch@imendio.com>

	* gtk/gtkbutton.h
	* gtk/gtkcellrenderer.h
	* gtk/gtkimcontext.h
	* gtk/gtkstyle.h
	* gtk/gtktoolbar.h
	* gtk/gtktooltip.h
	* gtk/gtktreeprivate.h
	* gtk/gtktreeviewcolumn.h
	* gtk/gtkwidget.h: add const to constant structs which are passed
	into GTK+. Also add some forgotten const for const strings.

	* gtk/gtkbutton.c
	* gtk/gtkcellrenderer.c
	* gtk/gtkimcontext.c
	* gtk/gtkstyle.c
	* gtk/gtktoolbar.c
	* gtk/gtktooltip.c
	* gtk/gtktreeview.c
	* gtk/gtktreeviewcolumn.c
	* gtk/gtkwidget.c: changed accordingly.


svn path=/trunk/; revision=19399
2008-01-25 09:30:40 +00:00
Kristian Rietveld
c7d28a02f5 fully initialize GdkWindowAttr to avoid valgrind warnings. (#507751, patch
2008-01-10  Kristian Rietveld  <kris@imendio.com>

	* gtk/gtktreeview.c (gtk_tree_view_motion_draw_column_motion_arrow),
	(_gtk_tree_view_column_start_drag): fully initialize GdkWindowAttr to
	avoid valgrind warnings.  (#507751, patch from Christian Persch).


svn path=/trunk/; revision=19333
2008-01-10 10:13:28 +00:00
Kristian Rietveld
244380529a Fix #477175, reported by Juri Pakaste.
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
2008-01-10 09:24:11 +00:00
Johan Dahlin
71e9be7e6d Use G_OBJECT_WARN_INVALID_PROPERTY_ID consistently. Fixes #5075
2008-01-06  Johan Dahlin  <johan@gnome.org>

	* gtk/gtkcellrenderercombo.c:
	(gtk_cell_renderer_combo_get_property),
	(gtk_cell_renderer_combo_set_property):
	* gtk/gtkcombobox.c: (gtk_combo_box_set_property):
	* gtk/gtkcomboboxentry.c: (gtk_combo_box_entry_set_property):
	* gtk/gtknotebook.c: (gtk_notebook_set_property):
	* gtk/gtkspinbutton.c: (gtk_spin_button_set_property):
	* gtk/gtktextbuffer.c: (gtk_text_buffer_set_property),
	(gtk_text_buffer_get_property):
	* gtk/gtktextview.c: (gtk_text_view_set_property):
	* gtk/gtktogglebutton.c: (gtk_toggle_button_set_property):
	* gtk/gtktoolbutton.c: (gtk_tool_button_set_property),
	(gtk_tool_button_get_property):
	* gtk/gtktoolitem.c: (gtk_tool_item_set_property),
	(gtk_tool_item_get_property):
	* gtk/gtktreeview.c: (gtk_tree_view_set_property):
	* gtk/gtkwidget.c: (gtk_widget_set_property):
	* gtk/gtkwindow.c: (gtk_window_set_property):
	Use G_OBJECT_WARN_INVALID_PROPERTY_ID consistently.
	Fixes #5075

svn path=/trunk/; revision=19311
2008-01-06 03:28:40 +00:00
Matthias Clasen
6bfb299f30 More default property value fixes
svn path=/trunk/; revision=19280
2007-12-28 19:20:26 +00:00
Xan Lopez
dcbaaf2a69 pass correct argument to g_signal_emit for TEST_EXPAND_ROW (GtkTreeIter*
2007-12-23  Xan Lopez  <xan@gnome.org>

	* gtk/gtktreeview.c (gtk_tree_view_build_tree): pass correct argument
	to g_signal_emit for TEST_EXPAND_ROW (GtkTreeIter* vs. GtkTreeIter**).

	Patch by Sadrul Habib Chowdhury (#504804)

svn path=/trunk/; revision=19225
2007-12-23 01:27:06 +00:00
Matthias Clasen
1719428849 Fix a typo
svn path=/trunk/; revision=19039
2007-11-25 06:07:44 +00:00
Kristian Rietveld
18b264b5e0 make sure the new cursor node is visible when we are done. (Fixes #472965,
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 19:40:14 +00:00
Kristian Rietveld
449db79467 we should only "don't move the cursor, but just select the current node"
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-10-09 17:08:18 +00:00
Kristian Rietveld
ecefbe8403 the tooltip-column property getter needs to set an integer, not a boolean.
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 22:39:47 +00:00
Kristian Rietveld
bd24768db6 if cell is set, always pass in path to gtk_tree_view_get_cell_area()
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-13 14:15:40 +00:00
Kristian Rietveld
a6755f707b only start typeahead search if tree_view has focus (and not one of the
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-10 09:24:38 +00:00
Kristian Rietveld
cc7e7db612 Reverted r16699:
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-09-09 15:17:43 +00:00
Kristian Rietveld
31fc4289c7 Do not allow the cursor to go to a separator row. Fixes #441219, modified
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-22 14:26:32 +00:00
Kristian Rietveld
bd7b15f347 make sure we fail keynav if the only item in the list is already selected.
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-08-14 08:11:26 +00:00
Kristian Rietveld
bed2f0e38c Fix documentation. (#461225, Murray Cumming).
2007-07-30  Kristian Rietveld  <kris@imendio.com>

	* gtk/gtktreeview.c (gtk_tree_view_set_tooltip_cell): Fix
	documentation. (#461225, Murray Cumming).


svn path=/trunk/; revision=18557
2007-07-30 10:57:25 +00:00
Matthias Clasen
dfe7852586 Fix some doc formatting errors
svn path=/trunk/; revision=18530
2007-07-23 18:33:35 +00:00
Matthias Clasen
a8442c5d01 Small fixes
svn path=/trunk/; revision=18503
2007-07-19 15:06:52 +00:00
Kristian Rietveld
9719e5fb3c handle no-window and regular widgets seperately.
2007-07-19  Kristian Rietveld  <kris@imendio.com>

	* gtk/gtktooltip.c (find_topmost_widget_coords_from_event): handle
	no-window and regular widgets seperately.

	* gtk/gtktreeview.c (gkt_tree_view_set_tooltip_cell): rect.x should
	be zero.


svn path=/trunk/; revision=18502
2007-07-19 15:03:18 +00:00
Matthias Clasen
38037481c2 markup fixes
svn path=/trunk/; revision=18500
2007-07-19 14:05:49 +00:00
Matthias Clasen
11548f29b1 markup fix
svn path=/trunk/; revision=18499
2007-07-19 13:57:16 +00:00
Matthias Clasen
cf5093a587 typo fix
svn path=/trunk/; revision=18498
2007-07-19 13:55:59 +00:00
Kristian Rietveld
b1ec5f7556 add more convenience API.
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-19 13:21:09 +00:00
Matthias Clasen
07420f8d75 Correct some mistakes in the documentation of the test-expand/collapse-row
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-18 08:56:42 +00:00
Kristian Rietveld
da989212f3 #408327, improve tooltip positioning.
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
2007-07-13 14:25:21 +00:00
Matthias Clasen
8fb1dc2411 Make parameter naming consistent.
2007-07-11  Matthias Clasen  <mclasen@redhat.com>

        * gtk/gtktreeview.c:
        * gtk/gtktoolitem.[hc]: Make parameter naming consistent.



svn path=/trunk/; revision=18452
2007-07-12 01:13:42 +00:00
Kristian Rietveld
23b358d7b5 x should be changed when converting widget <=> bin_window coordinates, not
2007-07-11  Kristian Rietveld  <kris@imendio.com>

	* gtk/gtktreeview.c (gtk_tree_view_*_to_*_coords): x should be
	changed when converting widget <=> bin_window coordinates, not
	when bin_window <=> tree_window.


svn path=/trunk/; revision=18446
2007-07-11 18:42:28 +00:00
Matthias Clasen
3461e2340a Fix a typo in the docs. (#453673, Guillaume Cottenceau)
2007-07-09  Matthias Clasen  <mclasen@redhat.com>

        * gtk/gtktreeview.c
        (gtk_tree_view_convert_bin_window_to_widget_coords:
        Fix a typo in the docs.  (#453673, Guillaume Cottenceau)



svn path=/trunk/; revision=18417
2007-07-09 19:20:12 +00:00
Kristian Rietveld
80f3a03319 new function to check whether a rubber banding operation is currently
2007-07-02  Kristian Rietveld  <kris@gtk.org>

	* gtk/gtk.symbols:
	* gtk/gtktreeview.[ch] (gtk_tree_view_is_rubber_banding_active): new
	function to check whether a rubber banding operation is currently
	active.  (#393579, Christian Neumair).


svn path=/trunk/; revision=18344
2007-07-02 17:33:25 +00:00
Johan Dahlin
60a409785f Rename buildable methods to not clash with widget methods. (#448928,
2007-06-19  Johan Dahlin  <jdahlin@async.com.br>

    * gtk/*: Rename buildable methods to not clash with widget 
    methods. (#448928, Torsten Schoenfeld)


svn path=/trunk/; revision=18187
2007-06-19 12:23:36 +00:00
Matthias Clasen
2c1ee89734 Fix up docs
svn path=/trunk/; revision=18150
2007-06-15 20:56:30 +00:00
Johan Dahlin
4d638bf0c1 Add GtkBuilder, fixes #172535
2007-06-15  Johan Dahlin  <jdahlin@async.com.br>

    * demos/gtk-demo/Makefile.am:
    * demos/gtk-demo/builder.c: (quit_activate), (about_activate),
    (do_builder):
    * demos/gtk-demo/demo.ui:
    * docs/reference/gtk/gtk-docs.sgml:
    * docs/reference/gtk/gtk-sections.txt:
    * docs/reference/gtk/gtk.types:
    * docs/reference/gtk/tmpl/gtkbuildable.sgml:
    * docs/reference/gtk/tmpl/gtkbuilder.sgml:
    * gtk/Makefile.am:
    * gtk/gtk.h:
    * gtk/gtk.symbols:
    * gtk/gtkaction.c: (gtk_action_buildable_init),
    (gtk_action_buildable_set_name), (gtk_action_buildable_get_name):
    * gtk/gtkactiongroup.c: (gtk_action_group_get_type),
    (gtk_action_group_buildable_init),
    (gtk_action_group_buildable_add),
    (gtk_action_group_buildable_set_name),
    (gtk_action_group_buildable_get_name):
    * gtk/gtkbuildable.c: (gtk_buildable_get_type),
    (gtk_buildable_set_name), (gtk_buildable_get_name),
    (gtk_buildable_add), (gtk_buildable_set_property),
    (gtk_buildable_parser_finished), (gtk_buildable_construct_child),
    (gtk_buildable_custom_tag_start), (gtk_buildable_custom_tag_end),
    (gtk_buildable_custom_finished),
    (gtk_buildable_get_internal_child):
    * gtk/gtkbuildable.h:
    * gtk/gtkbuilder.c: (gtk_builder_class_init), (gtk_builder_init),
    (gtk_builder_finalize), (gtk_builder_set_property),
    (gtk_builder_get_property), (_gtk_builder_resolve_type_lazily),
    (gtk_builder_real_get_type_from_name),
    (gtk_builder_get_parameters), (gtk_builder_get_internal_child),
    (_gtk_builder_construct), (_gtk_builder_add),
    (apply_delayed_properties), (_gtk_builder_finish),
    (gtk_builder_new), (gtk_builder_add_from_file),
    (gtk_builder_add_from_string), (gtk_builder_get_object),
    (object_add_to_list), (gtk_builder_get_objects),
    (gtk_builder_set_translation_domain),
    (gtk_builder_get_translation_domain),
    (gtk_builder_connect_signals_default),
    (gtk_builder_connect_signals), (gtk_builder_connect_signals_full),
    (gtk_builder_value_from_string),
    (gtk_builder_value_from_string_type),
    (_gtk_builder_enum_from_string), (_gtk_builder_flags_from_string),
    (gtk_builder_get_type_from_name), (gtk_builder_error_quark):
    * gtk/gtkbuilder.h:
    * gtk/gtkbuilderparser.c: (state_push), (state_peek), (state_pop),
    (error_missing_attribute), (error_invalid_attribute),
    (error_invalid_tag), (builder_construct), (parse_object),
    (free_object_info), (_get_type_by_symbol), (parse_child),
    (free_child_info), (parse_property), (free_property_info),
    (parse_signal), (_free_signal_info), (parse_interface),
    (create_subparser), (free_subparser), (subparser_start),
    (subparser_end), (parse_custom), (start_element), (end_element),
    (text), (_gtk_builder_parser_parse_buffer):
    * gtk/gtkbuilderprivate.h:
    * gtk/gtkcelllayout.c: (attributes_start_element),
    (attributes_text_element),
    (_gtk_cell_layout_buildable_custom_tag_start),
    (_gtk_cell_layout_buildable_custom_tag_end),
    (_gtk_cell_layout_buildable_add):
    * gtk/gtkcelllayout.h:
    * gtk/gtkcellview.c: (gtk_cell_view_buildable_init),
    (gtk_cell_view_buildable_custom_tag_start),
    (gtk_cell_view_buildable_custom_tag_end):
    * gtk/gtkcolorseldialog.c:
    (gtk_color_selection_dialog_buildable_interface_init),
    (gtk_color_selection_dialog_buildable_get_internal_child):
    * gtk/gtkcombobox.c: (gtk_combo_box_buildable_init),
    (gtk_combo_box_buildable_custom_tag_start),
    (gtk_combo_box_buildable_custom_tag_end):
    * gtk/gtkcomboboxentry.c:
    (gtk_combo_box_entry_buildable_interface_init),
    (gtk_combo_box_entry_buildable_get_internal_child):
    * gtk/gtkcontainer.c: (gtk_container_get_type),
    (gtk_container_buildable_init), (gtk_container_buildable_add),
    (gtk_container_buildable_set_child_property),
    (attributes_start_element), (attributes_text_element),
    (gtk_container_buildable_custom_tag_start),
    (gtk_container_buildable_custom_tag_end):
    * gtk/gtkdebug.h:
    * gtk/gtkdialog.c: (gtk_dialog_buildable_interface_init),
    (gtk_dialog_buildable_get_internal_child),
    (attributes_start_element), (attributes_text_element),
    (gtk_dialog_buildable_custom_tag_start),
    (gtk_dialog_buildable_custom_finished):
    * gtk/gtkentrycompletion.c: (gtk_entry_completion_buildable_init):
    * gtk/gtkexpander.c: (gtk_expander_buildable_add),
    (gtk_expander_buildable_init):
    * gtk/gtkfontsel.c:
    (gtk_font_selection_dialog_buildable_interface_init),
    (gtk_font_selection_dialog_buildable_get_internal_child):
    * gtk/gtkframe.c: (gtk_frame_buildable_init),
    (gtk_frame_buildable_add):
    * gtk/gtkiconview.c: (gtk_icon_view_buildable_init),
    (gtk_icon_view_buildable_custom_tag_start),
    (gtk_icon_view_buildable_custom_tag_end):
    * gtk/gtkliststore.c: (gtk_list_store_buildable_init),
    (list_store_start_element), (list_store_end_element),
    (list_store_text), (gtk_list_store_buildable_custom_tag_start),
    (gtk_list_store_buildable_custom_tag_end):
    * gtk/gtkmain.c:
    * gtk/gtknotebook.c: (gtk_notebook_buildable_init),
    (gtk_notebook_buildable_add):
    * gtk/gtksizegroup.c: (gtk_size_group_buildable_init),
    (size_group_start_element),
    (gtk_size_group_buildable_custom_tag_start),
    (gtk_size_group_buildable_custom_finished):
    * gtk/gtktreestore.c: (gtk_tree_store_buildable_init),
    (tree_model_start_element),
    (gtk_tree_store_buildable_custom_tag_start),
    (gtk_tree_store_buildable_custom_finished):
    * gtk/gtktreeview.c: (gtk_tree_view_buildable_init),
    (gtk_tree_view_buildable_add):
    * gtk/gtktreeviewcolumn.c: (gtk_tree_view_column_buildable_init):
    * gtk/gtkuimanager.c: (gtk_ui_manager_buildable_init),
    (gtk_ui_manager_buildable_add),
    (gtk_ui_manager_buildable_construct_child),
    (gtk_ui_manager_buildable_custom_tag_start),
    (gtk_ui_manager_buildable_custom_tag_end):
    * gtk/gtkwidget.c: (gtk_widget_get_type),
    (gtk_widget_buildable_interface_init),
    (gtk_widget_buildable_set_name), (gtk_widget_buildable_get_name),
    (gtk_widget_buildable_set_property),
    (gtk_widget_buildable_parser_finshed), (accel_group_start_element),
    (gtk_widget_buildable_custom_tag_start),
    (gtk_widget_buildable_custom_finshed):
    * gtk/gtkwindow.c: (gtk_window_buildable_interface_init),
    (gtk_window_buildable_set_property),
    (gtk_window_buildable_parser_finished):
    * tests/Makefile.am:
    * tests/buildertest.c: (builder_new_from_string), (test_parser),
    (signal_normal), (signal_after), (signal_object),
    (signal_object_after), (signal_first), (signal_second),
    (signal_extra), (signal_extra2), (test_connect_signals),
    (test_uimanager_simple), (test_domain), (test_translation),
    (test_sizegroup), (test_list_store), (test_tree_store),
    (test_types), (test_spin_button), (test_notebook),
    (test_construct_only_property), (test_children),
    (test_child_properties), (test_treeview_column), (test_icon_view),
    (test_combo_box), (test_combo_box_entry), (test_cell_view),
    (test_dialog), (test_accelerators), (test_widget), (main):

    Add GtkBuilder, fixes #172535


svn path=/trunk/; revision=18141
2007-06-15 17:53:46 +00:00
Kristian Rietveld
4e4748e890 Audit of GtkTreeView coordinate system usage. (#142494).
2007-06-13  Kristian Rietveld  <kris@imendio.com>

	Audit of GtkTreeView coordinate system usage. (#142494).

	* gtk/gtktreeview.[ch]: general documentation updates,
	(gtk_tree_view_scroll_to_cell), (gtk_tree_view_get_dest_row_at_pos):
	update coordinate translations,
	(gtk_tree_view_tree_to_widget_coords),
	(gtk_tree_view_widget_to_tree_coords): Deprecated,
	(gtk_tree_view_convert_.*_coords): 6 new functions for doing
	transformations between coordinate systems.

	* gtk/gtk.symbols: updated.

	* tests/testtooltips.c (query_tooltip_tree_view_cb): fix testcase
	with new gtk_tree_view_convert_widget_to_bin_window_coords().

	* docs/reference/gtk/Makefile.am
	* docs/reference/gtk/images/tree-view-coordinates.png: add new image.

	* docs/reference/gtk/tmpl/gtktreeview.sgml: eloborate on the
	different coordinate systems.


svn path=/trunk/; revision=18119
2007-06-13 13:27:00 +00:00
Matthias Clasen
5dfb5b23ed Documentation additions
svn path=/trunk/; revision=18074
2007-06-07 06:19:15 +00:00
Kristian Rietveld
1598526f5c also remove the auto expand timeout if it exists.
2007-06-06  Kristian Rietveld  <kris@imendio.com>

	* gtk/gtktreeview.c (gtk_tree_view_unrealize): also remove the
	auto expand timeout if it exists.


svn path=/trunk/; revision=18048
2007-06-06 08:54:30 +00:00
Kristian Rietveld
b3e489c7f3 Disable key bindings during rubber banding, make pressing Esc stop rubber
2007-05-09  Kristian Rietveld  <kris@imendio.com>

	* gtk/gtktreeview.c (gtk_tree_view_key_press),
	(gtk_tree_view_key_release):
	* gtk/gtkiconview.c (gtk_icon_view_class_init),
	(gtk_icon_view_key_press),
	(gtk_icon_view_key_release): Disable key bindings during rubber
	banding, make pressing Esc stop rubber banding.  (#405027).


svn path=/trunk/; revision=17807
2007-05-09 14:06:02 +00:00
Kristian Rietveld
ba51caa966 stop the rubber band if it's active.
2007-05-02  Kristian Rietveld  <kris@imendio.com>

	* gtk/gtktreeview.c (gtk_tree_view_grab_notify): stop the rubber band
	if it's active.


svn path=/trunk/; revision=17770
2007-05-02 08:08:39 +00:00
Matthias Clasen
4b42349614 Set the background of the header window again. (#431067, Benjamin Berg)
2007-04-25  Matthias Clasen  <mclasen@redhat.com>

        * gtk/gtktreeview.c (gtk_tree_view_style_set): Set the background
        of the header window again.  (#431067, Benjamin Berg)



svn path=/trunk/; revision=17640
2007-04-25 19:10:25 +00:00
Kristian Rietveld
3bd51183a8 add _gtk_tree_view_column_get_focus_area().
2007-03-20  Kristian Rietveld  <kris@gtk.org>

	* gtk/gtktreeviewcolumn.c:
	* gtk/gtktreeprivate.h: add _gtk_tree_view_column_get_focus_area().

	* gtk/gtktreeview.c (gtk_tree_view_clamp_column_visible): add
	focus_to_cell parameter, rework to handle clamping columns which
	are bigger than the available page size better,
	(gtk_tree_view_key_press): remove code handling moving the focus
	to other column headers,
	(gtk_tree_view_header_focus): add clamp_column_visible parameter,
	fix RTL support, don't wrap around when moving focus to other
	column headers, call gtk_tree_view_clamp_column_visible() instead
	of duplicating code,
	(gtk_tree_view_focus): only clamp the column visible when we are
	explicitly moving to another column header (fixes #399555, Charles
	Kerr),
	(gtk_tree_view_move_cursor_left_right): update call to
	gtk_tree_view_clamp_column_visible().


svn path=/trunk/; revision=17546
2007-03-20 12:32:19 +00:00
Kristian Rietveld
f74a07b091 only hide the search dialog and send focus events if the search dialog is
2007-03-10  Kristian Rietveld  <kris@gtk.org>

	* gtk/gtktreeview.c (gtk_tree_view_search_dialog_hide): only
	hide the search dialog and send focus events if the search dialog
	is currently visible.


svn path=/trunk/; revision=17464
2007-03-10 22:42:40 +00:00
Kristian Rietveld
c24c88fe30 add cursor_offset field.
2007-02-16  Kristian Rietveld  <kris@gtk.org>

	* gtk/gtktreeprivate.h: add cursor_offset field.

	* gtk/gtktreeview.c (gtk_tree_view_init),
	(gtk_tree_view_move_cursor_page_up_down): fix off by one error
	in page up/down handling by memorizing the offset into the cursor
	row.  (Fixes #399809, reported by Bruce Bowler).


svn path=/trunk/; revision=17316
2007-02-16 21:35:31 +00:00
Kristian Rietveld
41aff18d7f send a focus-in event to the tree view after hiding the search dialog.
2007-02-16  Kristian Rietveld  <kris@gtk.org>

	* gtk/gtktreeview.c (gtk_tree_view_search_dialog_hide): send
	a focus-in event to the tree view after hiding the search dialog.
	(#356515, Rich Burridge, Peter Parente).


svn path=/trunk/; revision=17314
2007-02-16 21:24:54 +00:00
Kristian Rietveld
8f1eff60dd remove unused style_get of vertical-separator. (#403165, Chris Wilson).
2007-02-02  Kristian Rietveld  <kris@gtk.org>

	* gtk/gtktreeview.c (gtk_tree_view_row_changed): remove unused
	style_get of vertical-separator. (#403165, Chris Wilson).


svn path=/trunk/; revision=17252
2007-02-02 20:37:02 +00:00
Kristian Rietveld
19a056cc4e factor out add_scroll_timeout(). (taken from maemo-gtk).
2007-01-19  Kristian Rietveld  <kris@imendio.com>

	* gtk/gtktreeview.c (gtk_tree_view_motion_bin_window),
	(add_scroll_timeout), (gtk_tree_view_drag_motion): factor out
	add_scroll_timeout().  (taken from maemo-gtk).


svn path=/trunk/; revision=17192
2007-01-19 10:32:42 +00:00
Michael Natterer
42debff10d gtk/gtkcheckbutton.c gtk/gtkdnd.c gtk/gtkentry.c gtk/gtkmenu.c
2007-01-18  Michael Natterer  <mitch@imendio.com>

	* gtk/gtkcheckbutton.c
	* gtk/gtkdnd.c
	* gtk/gtkentry.c
	* gtk/gtkmenu.c
	* gtk/gtktreeview.c
	* gtk/gtkviewport.c: pass more clip rectangles to gtk_paint_foo()
	functions. Based on a patch from maemo-gtk (bug #398023).


svn path=/trunk/; revision=17183
2007-01-18 17:30:10 +00:00
Hans Breuer
3f403cde24 don't include "gtkprivate.h" to avoid differing definitions of
2007-01-13  Hans Breuer <hans@breuer.org>

	* gtk/gtkimmulticontext.c : don't include "gtkprivate.h" to avoid
	differing definitions of GTK_LOCALEDIR (bug #396175).

	* gtk/gtktreeview.c : use g_snprintf instead of snprintf, which is
	not available everywhere

	* gtk/makefile.msc.in : updated

svn path=/trunk/; revision=17137
2007-01-13 21:13:28 +00:00
Kristian Rietveld
d2b57c096a handle tree == NULL. (Fixes #392259, reported by Christian Persch).
2007-01-05  Kristian Rietveld  <kris@gtk.org>

	* gtk/gtktreeview.c (gtk_tree_view_dy_to_top_row): handle tree
	== NULL.  (Fixes #392259, reported by Christian Persch).


svn path=/trunk/; revision=17092
2007-01-05 22:14:08 +00:00
Kristian Rietveld
b5eed72f24 do allow for invalidated nodes if the tree view is not realized. (#363147,
2007-01-05  Kristian Rietveld  <kris@gtk.org>

	* gtk/gtktreeview.c (gtk_tree_view_row_changed): do allow for
	invalidated nodes if the tree view is not realized. (#363147,
	Carlos Garnacho, Miguel Cabrera).


svn path=/trunk/; revision=17089
2007-01-05 21:34:58 +00:00
Kristian Rietveld
962e54f140 fix typo causing the search dialog timeout never to be refreshed.
2006-12-26  Kristian Rietveld  <kris@gtk.org>

	* gtk/gtktreeview.c (gtk_tree_view_search_init): fix typo causing
	the search dialog timeout never to be refreshed. (#389581,
	Andrzej Szombierski).
2006-12-26 18:17:36 +00:00
Kristian Rietveld
a3bc63b9e2 Lots of scrolling fixes. Made scrolling work properly in not fully
2006-12-26  Kristian Rietveld  <kris@gtk.org>

	Lots of scrolling fixes.  Made scrolling work properly in not fully
	validated tree views; fixed a bunch of corner cases.

	* gtk/gtktreeview.c (validate_visible_area): if a row's dy is past
	upper - page_size, we know it is located at the end so the test for
	dy + height has been dropped.
	In the same case if area_below < 0, we know this is the last node
	in the tree view so area_above is page_size - height of this row.
	(validate_visible_area): got rid of subtracting new_height -
	old_height from area_{below,above}, it didn't make any sense at
	all and the full height of the row should be subtracted instead.
	(validate_visible_area): when scrolling to a given path, set the
	top row directly together with the dy offset, then sync that top_row
	to the dy.
	(gtk_tree_view_set_top_row): new function to directly set a top_row.
	(gtk_tree_view_dy_to_top_row): refactored to use
	gtk_tree_view_set_top_row().
	(gtk_tree_view_top_row_to_dy): make sure dy >= 0 when done.
	(gtk_tree_view_adjustment_changed): only update our dy and
	top_row if the adjustment's dy actually changed.
2006-12-26 16:13:02 +00:00
Matthias Clasen
721c3bc101 Replace a lot of idle and timeout calls by the new gdk_threads api.
2006-12-22  Matthias Clasen  <mclasen@redhat.com>

        * *.c: Replace a lot of idle and timeout calls by
        the new gdk_threads api.
2006-12-22 19:10:43 +00:00
Kristian Rietveld
44cac29d90 when not using an explicit alignment, use the full area of the row (not
2006-12-03  Kristian Rietveld  <kris@gtk.org>

	* gtk/gtktreeview.c (validate_visible_area): when not using an
	explicit alignment, use the full area of the row (not just dy)
	to determine how to implicitly align it.  (Fixes #363191, reported
	by Federico Mena Quintero).
2006-12-03 15:14:51 +00:00
Michael Natterer
9c96044c00 if we can't go up/down, consult gtk_widget_keynav_failed() and leave the
2006-11-24  Michael Natterer  <mitch@imendio.com>

	* gtk/gtktreeview.c (gtk_tree_view_move_cursor_up_down): if we
	can't go up/down, consult gtk_widget_keynav_failed() and leave the
	widget if it returns FALSE (bug #322640).
2006-11-24 13:18:55 +00:00
Michael Natterer
7f374a74ba Add new infrastructure for notifications of failed keyboard navigation and
2006-11-16  Michael Natterer  <mitch@imendio.com>

	Add new infrastructure for notifications of failed keyboard
	navigation and navigation with restricted set of keys.

	The patch handles configurable beeping, navigating the GUI with
	cursor keys only (as in phone environments), and configurable
	wrap-around. Fixes bugs #322640, #70986, #318827, #334726, #334742
	and #309291.

	* gtk/gtksettings.c: added properties gtk-keynav-cursor-only,
	gtk-keynav-wrap-around and gtk-error-bell.

	* gtk/gtkwidget.[ch]: added new signal "keynav-failed" and public
	API to emit it. Added New function gtk_widget_error_bell() which
	looks at the gtk-error-bell setting and calls gdk_window_beep()
	accordingly.

	* gtk/gtk.symbols: add the new widget symbols.

	* gtk/gtkcellrendereraccel.c
	* gtk/gtkimcontextsimple.c
	* gtk/gtkmenu.c
	* gtk/gtknotebook.c: use gtk_widget_error_bell() or look at the
	gtk-error-bell setting instead of calling gdk_display_beep()
	unconditionally.

	* gtk/gtkcombobox.c
	* gtk/gtkentry.c
	* gtk/gtkiconview.c
	* gtk/gtklabel.c
	* gtk/gtkmenushell.c
	* gtk/gtkspinbutton.c
	* gtk/gtktextview.c
	* gtk/gtktreeview.c: call gtk_widget_error_bell() on failed keynav.

	* gtk/gtkentry.c
	* gtk/gtklabel.c
	* gtk/gtkrange.c
	* gtk/gtktextview.c: consult gtk_widget_keynav_failed() on failed
	cursor navigation and leave the widget if it returns FALSE.

	* gtk/gtkmenushell.c
	* gtk/gtknotebook.c: only wrap around if gtk-keynav-wrap-around
	is TRUE.

	* gtk/gtkradiobutton.c: ask gtk_widget_keynav_failed() to decide
	whether to to wrap-around, and don't select active items on cursor
	navigation if gtk-keynav-cursor-only is TRUE. Should look at
	gtk-keynav-wrap-around too, will look into that.
2006-11-16 12:56:30 +00:00
Kristian Rietveld
3959e39a4f disable don't move cursor case for SELECTION_NONE. (#371756, John Ellis).
2006-11-09  Kristian Rietveld  <kris@imendio.com>

	* gtk/gtktreeview.c (gtk_tree_view_move_cursor_up_down): disable
	don't move cursor case for SELECTION_NONE. (#371756, John Ellis).
2006-11-09 17:09:25 +00:00
Kristian Rietveld
04687fad73 don't forget to queue a draw for the new cursor node. (Fixes #366548,
2006-10-30  Kristian Rietveld  <kris@gtk.org>

	* gtk/gtktreeview.c (gtk_tree_view_move_cursor_page_up_down): don't
	forget to queue a draw for the new cursor node. (Fixes #366548,
	reported by Sven Herzberg).
2006-10-30 22:07:50 +00:00
Kristian Rietveld
b863dba5ed change left/right keybindings to collapse/expand rows instead of moving
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).
2006-10-30 12:43:15 +00:00
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