Wed Feb 23 17:34:01 2005 Jonathan Blandford <jrb@redhat.com>
* gtk/gtktreeview.c (gtk_tree_view_node_queue_redraw): Patch from
jorn@nl.linux.org (Jorn Baayen) to notice changes to fixed-height
widgets.
2005-02-16 Matthias Clasen <mclasen@redhat.com>
Fixes for #143829, Tommi Komulainen, Christian Persch:
* gtk/gtktreeview.c (gtk_tree_view_destroy): Remove the
typeselect_flush_timeout when destroying the widgets
it is operating on.
(gtk_tree_view_ensure_interactive_directory): Add the
popup to the window group of the toplevel it belongs to.
* gtk/gtkcombobox.c (gtk_combo_box_set_popup_widget)
(gtk_combo_box_popup): Do the same here.
2005-01-20 Matthias Clasen <mclasen@redhat.com>
* gtk/gtktreeview.c (gtk_tree_view_search_move): Don't crash
if the tree is empty. (#164669, Priit Laes)
2005-01-14 Matthias Clasen <mclasen@redhat.com>
* gtk/gtktreeview.c (gtk_tree_view_set_search_column): Allow to
reset the property to its default value -1.
(gtk_tree_view_get_search_column): Return the default value in
the g_return_val_if_fail() check. (#163864, Richard Hult)
2005-01-13 Matthias Clasen <mclasen@redhat.com>
* gtk/gtktreeview.c: (gtk_tree_view_class_init),
(gtk_tree_view_set_headers_clickable): Make the headers-visible
property readwrite instead of just writable, and remove the
g_return_if_fail check that there is a model when setting this
property. Also improve the blurb. (#163851, Richard Hult)
2004-12-16 Matthias Clasen <mclasen@redhat.com>
* gtk/gtktreeview.c (gtk_tree_view_real_start_interactive_search): Don't
crash if enable_search is FALSE. (#161267, Jorn Baayen)
* gtk/gtkfilechooserbutton.c (gtk_file_chooser_button_mnemonic_activate):
Re-fix #152925, reported by Dennis Cranston.
2004-12-09 Matthias Clasen <mclasen@redhat.com>
Fix#145463, reported by Michael Natterer.
* gtk/gtkcellrenderer.h (struct _GtkCellRenderer): Add an
editing flag to keep track of when editing is done.
* gtk/gtkcellrenderer.h:
* gtk/gtkcellrenderer.c (gtk_cell_renderer_stop_editing): New
function to replace gtk_cell_renderer_editing_canceled().
Deprecate gtk_cell_renderer_editing_canceled().
* gtk/gtkcellrenderertext.c (gtk_cell_renderer_text_editing_done):
* gtk/gtkcellrenderercombo.c (gtk_cell_renderer_combo_editing_done):
* gtk/gtktreeview.c (gtk_tree_view_stop_editing):
Use gtk_cell_renderer_stop_editing().
2004-12-08 Matthias Clasen <mclasen@redhat.com>
* gtk/gtktreeview.c (_gtk_tree_view_column_start_drag): Use
button->event_window for the fake leave event, otherwise
the button ignores it.
2004-11-03 Matthias Clasen <mclasen@redhat.com>
* gtk/gtktreeview.c (gtk_tree_view_search_activate): Don't
try to activate a node if the cursor is not valid.
2004-10-28 Matthias Clasen <mclasen@redhat.com>
* gtk/gtktreeview.c (gtk_tree_view_remove_widget): Disconnect
from the remove-widget signal after removing the signal.
2004-10-23 Matthias Clasen <mclasen@redhat.com>
* gtk/gtktreeview.c (gtk_tree_view_size_allocate): Invalidate
the window if the tree is empty, to avoid resizing artifacts
from the focus rectangle. (#155881, Vincent Noel, patch by
Billy Biggs)
2004-10-08 Matthias Clasen <mclasen@redhat.com>
* gtk/gtktreeview.c (gtk_tree_view_button_press): Set cell data
unconditionally. (#152562, Federico Mena Quintero)
2004-10-06 Matthias Clasen <mclasen@redhat.com>
* gtk/gtktreeview.c (gtk_tree_view_search_iter): Set the cursor
before changing the selection to make the file chooser preview
update work better. (#143826, Tommi Komulainen)
2004-09-14 Matthias Clasen <mclasen@redhat.com>
* gtk/gtktreeview.c (gtk_tree_view_focus_to_cursor): Set the cursor
to the first selected row instead of always to the first row if there
is no cursor. (#143270, Jean Bréfort)
* tests/testfilechooser.c (main): Fix a few typos.
2004-09-13 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkexpander.c:
* gtk/gtktreeview.c: Change the default expander size to 12 to compensate
for the recent change to gtk_default_draw_expander().
* gtk/gtkstyle.c (gtk_default_draw_expander): Use a linewidth of one
for expander sizes up to 16.
2004-08-30 Matthias Clasen <mclasen@redhat.com>
* gtk/gtktextview.c (gtk_text_view_delete_surrounding_handler): Make it compile.
2004-08-27 Matthias Clasen <mclasen@redhat.com>
Fix#151112, Olexiy Avramchenko:
* gtk/gtktreeview.c (gtk_tree_view_search_entry_flush_timeout):
* gtk/gtkiconview.c (scroll_timeout, layout_callback)
(gtk_icon_view_item_accessible_idle_do_action):
* gtk/gtkcombobox.c (list_popup_resize_idle, popdown_idle)
(popup_idle): Protect idle callbacks and timeouts with
GDK_THREADS_ENTER/_LEAVE.
* gtk/gtkfilechooserbutton.c (update_dialog_idle): New function to
call update_dialog() from an idle with the necessary protection.
Wed Aug 25 17:14:58 2004 Manish Singh <yosh@gimp.org>
* gtk/gtktreeview.c (gtk_tree_view_search_activate): initialize
path so we don't potentially use an undefined pointer.
* gtk/gtkfilechooserdefault.c (shortcuts_list_create): add G_CALLBACK
cast for tree_view_keybinding_cb.
* gtk/gtkfilechooserdefault.c (location_entry_create): cast to
GTK_FILE_CHOOSER_ENTRY for _gtk_file_chooser_entry_set_file_part()
calls.
* gtk/gtkcellrenderercombo.c (gtk_cell_renderer_combo_start_editing):
cast to GTK_COMBO_BOX for gtk_combo_box_set_active_iter() call.
* gtk/gtkselection.c (selection_get_text_plain): make len a gsize,
since that's what g_convert_with_fallback() expects.
Wed Aug 25 16:14:34 2004 Jonathan Blandford <jrb@redhat.com>
* gtk/gtktreeview.c (gtk_tree_view_search_activate): activate the
typeahead entry on enter.
Tue Aug 24 02:06:37 2004 Jonathan Blandford <jrb@gnome.org>
* gtk/gtktreeview.c
(gtk_tree_view_real_expand_collapse_cursor_row): Don't handle the
event if we have no children.
* gtk/gtkfilechooserdefault.c (trap_activate_cb):
(tree_view_keybinding_cb):Since GtkTreeView has a keybinding
attached to '/', we need to catch keypresses before the TreeView
gets them.
(gtk_file_chooser_default_class_init): add '/' to be a keybinding
to the C-l dialog.
(location_entry_create): Clear the text to "" when loading a file.
This has a much better feel than putting the currently selected
in.
* #include <errno.h>
Wed Aug 18 16:18:00 2004 Manish Singh <yosh@gimp.org>
* gtk/gtktreeview.c (gtk_tree_view_row_inserted): Initialize height
from fixed_height before we do anything, so it always has a valid
value.
* gtk/gtkfilechooserdefault.c (shortcuts_reload_icons): Fix call
to gtk_tree_model_get (missing "," in param list).
Wed Aug 11 19:20:34 2004 Matthias Clasen <maclas@gmx.de>
* gtk/gtktreeview.c (gtk_tree_view_maybe_begin_dragging_row):
Don't start a drag if the treeview is only a
drag destination. (#149836, Pawel Salek)
Mon Aug 9 12:48:04 2004 Matthias Clasen <maclas@gmx.de>
Add hidden aliases for exported symbols which are
used internally in order to get rid of many PLT
entries. (#145519, Arjan van de Ven)
* gtk/Makefile.am: Add rules to generate gtk.def and
from gtk.symbols, and make make check check the abi
with abicheck.sh.
(gtk_private_h_sources): Add gtkinternals.h
(gtk_built_private_headers): Add gtkalias.h
(gtk_extra_sources): Add gtk.symbols
(EXTRA_DIST): Add makegtkalias.pl and abicheck.sh
* gtk/gtk.symbols: New file. Definition of the GTK+ ABI.
The file can be processed by cpp to filter out certain
subsets of symbols.
* gtk/abicheck.sh: New file. Script to check the actually
symbols exported from libgtk-x11.2.0.so against the symbols
found in gtk.symbols.
* gtk/makegtkalias.pl: New file. Perl script to generate the
header containing the alias definitions for internally used
exported symbols from a list of symbols.
* gtk/gtkinternals.h: New file. An uninstalled header listing
symbols which must be exported for some reason and do not appear
in any other header.
* gtk/*.c: Include gtkalias.h
Sat Aug 7 01:26:08 2004 Matthias Clasen <maclas@gmx.de>
Make the column drag code a bit more robust (still scary,
though). (#106992, Christian Biere)
* gtk/gtktreeview.c (_gtk_tree_view_column_start_drag): Assert
that cur_reorder is NULL here.
* gtk/gtktreeview.c (gtk_tree_view_button_release_drag_column):
Reset cur_reorder to NULL, and only hide drag_highlight_window
if it exists.
2004-08-02 Matthias Clasen <mclasen@redhat.com>
* gtk/gtktreeview.h:
* gtk/gtktreeview.c:
* gtk/gtktreeprivate.h: Add a new boolean property
::hover-expand and make the treeview expand/collapse rows
on mouseover if it is set.
Thu Jul 29 16:36:42 2004 Jonathan Blandford <jrb@redhat.com>
* gtk/gtktreeprivate.h: New arguments
* gtk/gtktreeview.c:
(gtk_tree_view_class_init): Add key_release callback
(gtk_tree_view_init): Initialize timeout handler
(gtk_tree_view_unrealize): clear timeout if needed
(gtk_tree_view_key_press): Typeahead support
(gtk_tree_view_key_release): Not used yet -- will be needed for
typeahead.
(gtk_tree_view_search_entry_flush_timeout): Remove typeahead entry
in a timeout.
(gtk_tree_view_ensure_interactive_directory):
(gtk_tree_view_real_start_interactive_search):
(gtk_tree_view_search_init):
(gtk_tree_view_start_interactive_search): Typeahead support added.
(gtk_tree_view_search_dialog_hide): Clear timeout and text when we
hide.
2004-07-27 Matthias Clasen <mclasen@redhat.com>
* gtk/gtktreeview.c (gtk_tree_view_ensure_interactive_directory):
Add a frame around the C-f popup to stop it from merging visually
in whatever is underneath.
Tue Jul 20 00:45:38 2004 Matthias Clasen <maclas@gmx.de>
* gtk/gtktreeview.c (gtk_tree_view_button_press): Set drag_pos
before grabbing the focus, since we may reenter into
gtk_tree_view_motion_resize_column() which requires drag_pos
to be set. (#147913, Guilherme Salgado, patch by John Finlay)
2004-07-15 Matthias Clasen <mclasen@redhat.com>
* gtk/gtktreeview.c (gtk_tree_view_class_init):
* gtk/gtkcellrenderer.c (gtk_cell_renderer_class_init):
Correct the declared default values of several properties
to be in sync with the actual initial values.
2004-07-14 Federico Mena Quintero <federico@ximian.com>
Fix#126295:
* gtk/gtktreeview.c (gtk_tree_view_bin_expose): Draw a focus
indicator along the edge of the bin_window when the tree is empty.
(grab_focus_and_unset_draw_keyfocus): New helper function.
(gtk_tree_view_button_press): Remove a bit of superfluous code.
Use the helper function to save on duplicated code.
(gtk_tree_view_button_press): Grab the focus if the tree is empty.
(gtk_tree_view_focus): Allow focusing into an empty tree.
2004-07-13 Matthias Clasen <mclasen@redhat.com>
* gtk/gtktreeview.c (gtk_tree_view_adjustment_changed):
Prepare to handle composite implementations of
GtkCellEditable, but recursively poking at
allocation->y (hack stolen from GtkCList).
Thu Jul 8 00:33:15 2004 Matthias Clasen <maclas@gmx.de>
* gtk/gtktreeview.c (gtk_tree_view_set_model): Stop editing
when a new model is set. (#145566, Dmitry M. Shatrov)
2004-07-07 Matthias Clasen <mclasen@redhat.com>
Support separators in combo boxes and more generally in tree
views (#135873):
* gtk/gtkcombobox.h:
* gtk/gtkcombobox.c (gtk_combo_box_get_row_separator_column):
* gtk/gtkcombobox.c (gtk_combo_box_set_row_separator_column):
Add a ::row-separator-column property with getter and setter,
which can indicate a boolean model column to determine which
rows are separators.
* gtk/gtkcombobox.c: Display separator rows as separator menu
items in menu mode, and by using the new treeview separator
functionality in list mode.
* gtk/gtktreeview.h:
* gtk/gtktreeview.c (gtk_tree_view_get_row_separator_func):
* gtk/gtktreeview.c (gtk_tree_view_set_row_separator_func):
Add a callback to determine whether a row is a separator.
* gtk/gtktreeview.c (gtk_tree_view_bin_expose):
* gtk/gtktreeview.c (gtk_tree_view_create_row_drag_icon):
* gtk/gtktreeview.c (validate_row): Use the new callback
to determine whether a row is a separator, and draw it
as a separator then. Since separators should take up less
vertical space than regular rows, this requires removing
the redundant MAX(...,expander_size) calls which appear in
many places. Instead, the MAX() is now only done in
validate_row(), and only if the row is not a separator.
To catch possible side effects of this intrusive change,
I have left EXPANDER_MAX() calls in place of the MAX() calls
which will emit a warning if something breaks. They should
be removed before 2.6.
* gtk/gtktreeselection.c (row_is_selectable): Don't let
separator rows be selected.
* tests/testcombo.c (create_blaat): Add a separator column.
Tue Jul 6 10:00:22 2004 Jonathan Blandford <jrb@redhat.com>
Fix for #136496, Pawel Salek:
* gtk/gtktreeview.c (gtk_tree_view_row_changed): Queue a redraw on
a node when it changes in fixed_height mode.
(gtk_tree_view_node_queue_redraw): new function to queue a redraw
on a node.
2004-06-30 Anders Carlsson <andersca@gnome.org>
* gtk/gtktreeview.c (gtk_tree_view_set_model): Use
g_return_if_fail to make sure that the model is a GtkTreeModel.
2004-06-07 Federico Mena Quintero <federico@ximian.com>
* gtk/gtktreeview.c (gtk_tree_view_button_press): Revert the patch
from 2003/Sep/12. This kept DnD in tree views within modal
dialogs from working, which is especially bad for the file
chooser. Fixes#135168.
2004-05-14 Matthias Clasen <mclasen@redhat.com>
* gtk/gtktreeview.c (gtk_tree_view_tree_window_to_tree_coords):
New function to go from tree window to tree coordinates, kept
static for now until we figure out the multiple coordinate
system mess in GtkTreeView API-wise.
(gtk_tree_view_scroll_to_cell): Transform the coordinates
from tree window to tree coordinates, using the new function.
Previously, the x coordinate was wrongly transformed. (#142494)
2004-05-11 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkcombobox.c (gtk_combo_box_list_setup): Use
GTK_SELECTION_BROWSE.
* gtk/gtktreeview.c: Make hover selection work for
GTK_SELECTION_BROWSE as well.
2004-05-10 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkentrycompletion.c (gtk_entry_completion_init):
* gtk/gtkcombobox.c (gtk_combo_box_list_setup): Use hover selection
mode. (#127648, Dave Bordoley)
* gtk/gtktreeview.h:
* gtk/gtktreeview.c: Add a new property "hover_selection", which
when TRUE makes the selection follow the mouse. Also add setter
and getter for the fixed_height property.
Tue Apr 13 12:24:49 2004 Jonathan Blandford <jrb@redhat.com>
* gtk/gtktreeview.c (gtk_tree_view_destroy): remove unused
variable.
(gtk_tree_view_button_press): If we activated the row we don't
want to grab focus back, as moving focus to another widget is
pretty common, #138458
2004-04-12 Matthias Clasen <mclasen@dhcp64-228.boston.redhat.com>
* gtk/gtktreeview.c (gtk_tree_view_get_cell_area): Typo fix.
* gtk/gtkentrycompletion.c (gtk_entry_completion_init): Don't add
a shadow inside the scrolled window, add it around the vbox.
* gtk/gtkentryprivate.h:
* gtk/gtkentrycompletion.c (_gtk_entry_completion_resize_popup):
Return a boolean indicating whether the popup is positioned above
or below. Scroll the completions to the beginning or the end,
depending on the positioning.
* gtk/gtkentry.c (gtk_entry_completion_key_press): Make keynav
wrap around in the entry completion popup, and allow GDK_UP to
enter the popup. (#137440)
2004-04-12 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkentry.c (gtk_entry_size_request): Make sure the style is
there before using it.
Fri Apr 2 17:57:33 2004 Jonathan Blandford <jrb@redhat.com>
* gtk/gtktreeview.c (gtk_tree_view_row_inserted): set the height
correctly for fixed height when inserting a node, #138082
Sun Mar 14 22:32:36 2004 Owen Taylor <otaylor@redhat.com>
* gtk/gtktreeview.c (gtk_tree_view_set_search_equal_func): Mention
GtkTreeViewSearchEqualFunc return value oddity here as well.
* gtk/gtktreeview.c (gtk_tree_view_search_equal_func): On failure
to get a string to compare to, return TRUE (no match), not
FALSE (match). Handle %NULL string values gracefully.
Remove unused variable. (#135962, Mark McLoughlin)
2004-03-05 Federico Mena Quintero <federico@ximian.com>
Fixes#136082 and #135265, patch by Morten Welinder.
* configure.in: Use AC_SYS_LARGEFILE.
* */*.c: #include <config.h>
Fri Mar 5 18:00:36 2004 Jonathan Blandford <jrb@redhat.com>
* gtk/gtkfilechooserdefault.c (new_folder_button_clicked): scroll
to the new path.
* gtk/gtktreeview.c (gtk_tree_view_adjustment_changed): Update the
allocation when scrolling instead of cancelling editing.
Tue Feb 24 14:43:07 2004 Jonathan Blandford <jrb@gnome.org>
* gtk/gtktreeview.c (gtk_tree_view_bin_expose): only draw the sort
column as different if there are 3 or more visible columns.
Thu Feb 12 01:17:01 2004 Matthias Clasen <maclas@gmx.de>
* gtk/gtktreeview.c (gtk_tree_view_enable_model_drag_source): Call
gtk_drag_source_set(), so that things like gtk_drag_set_icon_*() work
for automatic DND. (#133485, Tommi Komulainen)
Tue Feb 3 00:15:17 2004 Matthias Clasen <maclas@gmx.de>
* gtk/gtktreeprivate.h (struct _GtkTreeViewPrivate): Add
init_hadjust_value and prev_width.
* gtk/gtktreeview.c (gtk_tree_view_init): Initialize
them here.
* gtk/gtktreeview.c (gtk_tree_view_update_size): ...and here.
* gtk/gtktreeview.c (gtk_tree_view_size_allocate): Use them
here to properly handle the initial position of rtl-oriented
tree views. (#127581, chinen@jp.ibm.com)
2004-01-20 Federico Mena Quintero <federico@ximian.com>
Fix#130846, reported by R. McFarland <rwmcfa1@neces.com>.
* gtk/gtktreeview.c (gtk_tree_view_button_press): Return TRUE when
we handle an event in the colums, and FALSE at the end if the
event is not handled at all.
2004-01-30 Not Zed <NotZed@Ximian.com>
Fixes#132929.
* gtk/gtktreeview.c (cancel_arrow_animation): remove the timeout
handler when we clear the timeout id.
Fri Jan 23 14:56:18 2004 Jonathan Blandford <jrb@gnome.org>
* gtk/gtktreeview.c (gtk_tree_view_get_path_at_pos): Don't crash
when there are no columns, or all columns are hidden, #131402
Fri Jan 16 23:59:01 2004 Matthias Clasen <maclas@gmx.de>
The first part of the fix for #114351 (see also
gdk-pixbuf/ChangeLog and po/ChangeLog):
* gtk/gtkintl.h:
* gdk-pixbuf/gdk-pixbuf-i18n.h:
* gdk/gdkintl.h: Define P_() for property blurbs and nicks.
* gdk/gdkdisplaymanager.c:
* gdk-pixbuf/gdk-pixbuf.c:
* modules/input/gtkimcontextxim.c:
* gtk/*.c: Mark property blurbs and nicks with P_().
* po/Makefile.in.in: Add --keyword=P_ to the xgettext
invocation, since property blurbs and nicks are
now marked with P_().
Wed Jan 14 18:01:52 2004 Jonathan Blandford <jrb@gnome.org>
* gtk/gtktreeview.c (gtk_tree_view_button_press): move grab_focus
to after handling the button presses in the TreeView to avoid
getting multiple selection_changes()
Sun Dec 21 23:17:01 2003 Matthias Clasen <maclas@gmx.de>
* gtk/gtkuimanager.c (update_node):
(update_smart_separators):
(_gtk_menu_is_empty):
(find_menu_position):
* gtk/gtktreeview.c (gtk_tree_view_search_dialog_destroy):
* gtk/gtkcombobox.c (gtk_combo_box_relayout_item):
(gtk_combo_box_relayout): Fix memory leaks caused by the
failure to free the result of gtk_container_get_children().
(#127576, Yao Zhang)
Sat Dec 20 22:06:03 2003 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_size_allocate): do not invalidate
all of treeview when resizing (#110074, patch from Soeren Sandmann).
Fri Dec 19 22:18:19 2003 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_search_equal_func): use strstr
instead of strcmp (#117127, suggestion from Soeren Sandmann).
Thu Dec 18 18:01:01 2003 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_class_init): add key bindings
for "*" and "/" (expand/collapse all). (#110195, reported by
Calum Benson).
Thu Dec 18 01:21:59 2003 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_class_init): Jonathan got
the logical flag backwards in the expand_collapse_cursor_row
bindings, fixing.
(gtk_tree_view_real_expand_collapse_cursor_row): invert expand
flag when !logical and in RTL. (Fixes#107527, reported by
Noah Levitt).
Thu Dec 18 01:10:16 2003 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_button_press): only start
editing when activated by the left mouse button. (#106869,
patch from Evan Martin).
Wed Dec 17 23:31:19 2003 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_search_equal_func): only
try to strcmp or strlen if we managed to normalize and casefold
the string correctly. Fixes crashes with non-UTF8 strings.
(#121617, Patch from Tim-Philipp Müller).
Sat Dec 13 16:13:27 2003 Kristian Rietveld <kris@gtk.org>
A trick for a faster treeview, step 1. Patch to short circuit
_build_tree(), inspired by Jonathan (#80868).
* gtk/gtktreeview.c (gtk_tree_view_init): don't put _IS_LIST in
flags by default,
(gtk_tree_view_build_tree): don't even try to recurse when the
model says that it is a list, remove flag unsetter,
(gtk_tree_view_set_model): change flag setting logic.
* gtk/gtktreemodelsort.c (gtk_tree_model_sort_get_flags):
propagate whether or not the child model has _IS_LIST set.
* gtk/gtktreemodelfilter.c (gtk_tree_model_filter_get_flags):
ditto.
Sat Nov 29 00:55:28 2003 Jonathan Blandford <jrb@gnome.org>
* gtk/gtktreeview.c (gtk_tree_view_new_column_width):
* gtk/gtktreeviewcolumn.c (_gtk_tree_view_column_realize_button):
Patch from <chinen@jp.ibm.com> to handle RTL support for column
resizers, #127874
Tue Oct 21 22:07:12 2003 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_real_move_cursor): set
ctrl_pressed and shift_pressed according to the current event
state (if there is one). (Fixes#125063, reported by Sebastien Bacher).
2003-10-13 Federico Mena Quintero <federico@ximian.com>
* gtk/gtktreeview.c (gtk_tree_view_real_collapse_row): Don't do
operations on windows if the tree view is not mapped.
(gtk_tree_view_button_press): Compare equal types of pointers, not
GtkWidget* vs. GtkTreeView*.
Fri Sep 12 16:32:53 2003 Jonathan Blandford <jrb@redhat.com>
Merge from stable.
* gtk/gtktreeview.c (gtk_tree_view_button_press): only save the
pressed button (used to determine if we want to initiate a drag later
on) if the current grab widget is either NULL or tree_view (Reported
by Jeroen Zwartepoorte).
Wed Sep 10 01:06:44 2003 Kristian Rietveld <kris@gtk.org>
Big TreeView DnD fixage, makes drops on empty models work, makes
TreeStore DnD work and gets rid of gtk-tree-model-drop-append.
Related bugs #95362 and #113314. I don't want to touch this code
ever again.
* gtk/gtktreeprivate.h (GtkTreePrivate): add empty_view_drop field.
* gtk/gtktreednd.c (gtk_tree_get_row_drag_data): add check
for selection_data->length.
* gtk/gtktreeview.c (struct DestRow), (dest_row_free),
(set_dest_row), (get_dest_row): we don't store just the row ref
anymore, but a struct with the row ref and additional info,
(set_destination_row): handle drops on empty space and some
style fixes,
(get_logical_dest_row): also return path_down_mode/drop_append_mode
flags, handle dropping childs on their new parents, rewrite
drop append handling into something saner,
(gtk_tree_view_drag_motion): show a "drop possible arrow" on empty
spaces,
(gtk_tree_view_drag_drop): updates for updated backend,
(gtk_tree_view_drag_data_received): updates for updated backend,
path down mode (treestore DnD) handling,
(gtk_tree_view_set_drag_dest_row): set empty_view_drop flag,
when we are trying to drop a row on an empty model,
(gtk_tree_view_get_drag_dest_row): handle empty_view_drop flag.
* gtk/gtkliststore.c (gtk_list_store_drag_data_received),
(gtk_list_store_row_drop_possible): style and drop-append fixes.
* gtk/gtktreestore.c (gtk_tree_store_drag_data_received): ditto.
Tue Sep 2 21:01:19 2003 Kristian Rietveld <kris@gtk.org>
Merge from stable.
* gtk/gtktreeview.c (gtk_tree_view_button_press): revert the change
to only select when button 1 is pressed introduced in the fix of
bug #120187.
Mon Aug 25 23:21:43 2003 Kristian Rietveld <kris@gtk.org>
Merge from stable.
Fixes#115871, reported by Michael Natterer.
* gtk/gtktreeprivate.h: added GtkTreeSelectMode enum,
added ctrl_pressed and shift_pressed bitfields,
(_gtk_tree_selection_internal_select_node): replace GdkModifierType
arg with GtkTreeSelectMode.
* gtk/gtktreeselection.c (gtk_tree_selection_set_mode),
(gtk_tree_selection_select_path), (gtk_tree_selection_unselect_path),
(_gtk_tree_selection_internal_select_node): all updated for
GdkModifierType -> GtkTreeSelectMode move.
* gtk/gtktreeview.c (gtk_tree_view_button_press): set ctrl_pressed
and shift_pressed around selection handling block,
(gtk_tree_view_real_select_cursor_row),
(gtk_tree_view_real_toggle_cursor_row),
(gtk_tree_view_real_selection_cursor_parent),
(gtk_tree_view_real_set_cursor): use ctrl_pressed and shift_pressed,
instead of checking the event state. And also updates for the
GdkModifierType -> GtkTreeSelectMode move.
Thu Aug 21 20:53:46 2003 Kristian Rietveld <kris@gtk.org>
Slightly modified patch from Yann Rouillard to improve selection
behavior with the mouse. Fixes#120187.
* gtk/gtktreeview.c (gtk_tree_view_button_press): only
select/deselect items on the first button press of button 1,
expand checks for row_activated to include triple clicks.
Fri Aug 15 21:57:34 2003 Kristian Rietveld <kris@gtk.org>
Merged from stable.
* gtk/gtktreeview.c (gtk_tree_view_adjustment_changed): stop editing
on vertical scrolling. (#108035, reported by Tim Janik).
Fri Aug 15 19:43:14 2003 Kristian Rietveld <kris@gtk.org>
(Note: This is not exactly the same as the patch which went in
gtk-2-2).
* gtk/gtktreeview.c (gtk_tree_view_class_init),
(gtk_tree_view_key_press), (gtk_tree_view_search_key_press_event):
Also support the up, down, left, right, home, end, page up and
page down keys on the numpad. (#119419, reported by Alex Larsson).
Thu Jul 17 19:24:51 2003 Kristian Rietveld <kris@gtk.org>
Merged from stable.
Fixes issues pointed out by Morten Welinder in #115140.
* gtk/gtktreeview.c (gtk_tree_view_size_request): fix comment,
(do_validate_rows): update validated_area with a logic OR instead
of a bitwise OR,
(validate_rows_handler): make the if statement match the one in
validate_rows(), so we don't leak the timeout.
Thu Jul 17 19:12:02 2003 Kristian Rietveld <kris@gtk.org>
Merged from stable.
* gtk/gtktreeview.c (gtk_tree_view_remove_widget): the treeview
should only grab focus back if the "cell_editable" widget still
has focus. (Fixes#110104, testcase provided by Marco Pesenti
Gritti).
Thu Jul 17 16:11:21 2003 Kristian Rietveld <kris@gtk.org>
Merged from stable.
* gtk/gtktreeview.c (gtk_tree_view_rows_reordered): stop editing
if needed. (Fixes#115869, reported by Michael Natterer).
Sat Jul 12 16:16:04 2003 Kristian Rietveld <kris@gtk.org>
Merged from stable.
* gtk/gtktreeview.c (gtk_tree_view_drag_data_received): special
case drags to "0", scroll to the top after dropping. (Fixes#94968,
reported by Alp Toker).
Sat Jul 12 15:51:33 2003 Kristian Rietveld <kris@gtk.org>
Merged from stable.
Fixes#113904, testcase provided by Rene Seindal.
* gtk/gtktreeview.c (gtk_tree_view_button_press): set
pressed_button to -1 when a row has been activated,
(gtk_tree_view_motion_bin_window): only start a drag if there's
a button being pressed.
Sat Jul 12 15:51:18 2003 Kristian Rietveld <kris@gtk.org>
Merged from stable.
* gtk/gtktreeview.c (gtk_tree_view_real_collapse_row): use
gdk_window_get_pointer instead of gdk_display_get_window_at_pointer
to avoid a roundtrip (#110272, Owen Taylor).
Sat Jul 12 15:28:26 2003 Kristian Rietveld <kris@gtk.org>
Merged from stable.
This patch really really fixes scrolling. Related bugs: #81627,
testcase provided by Timo Sirainen, #111500, testcase provided by
manu, #113241, reported by Pedro Gimeno/Michael Natterer.
* gtk/gtktreeview.c (validate_visible_area): scrolling to a dy
which is equal to the lower border of the window means scrolling
to an invisible row, always update the dy when scrolling to an
invisible row, corrected area_above/below calculations for
invisible rows, when walking the tree correct the size
subtracted for invalidated rows, fix wrong logic in comment.
Fri Jun 6 23:38:23 2003 Kristian Rietveld <kris@gtk.org>
Merged from stable.
* gtk/gtktreeview.c (do_expand_collapse),
(expand_collapse_timeout), (cancel_arrow_animation): made
expand_collapse_timeout a wrapper with locks around
do_expand_collapse, made cancel_arrow_animation use
do_expand_collapse. Fixes threadlock. (Fixes#111286, patch from
Peter Bloomfield).
Wed Jun 4 21:25:35 2003 Kristian Rietveld <kris@gtk.org>
Merged from stable.
* gtk/gtktreeview.c (gtk_tree_view_drag_begin): use a silent
assert for get_info. (reported by Michael Natterer),
(gtk_tree_view_expand_all_emission_helper),
(gtk_tree_view_expand_all_helper): emit row_expanded for all
expanded rows during an _expand_all operation. (Fixes#111280,
reported by Benjamin Bayart).
Thu May 29 18:23:01 2003 Kristian Rietveld <kris@gtk.org>
Merged from stable.
* gtk/gtktreeview.c (gtk_tree_view_button_press): put the focus
grab separate, the user might clear the tree in the focus-in
callback. (Fixes#113086, testcase from Felipe Heidrich).
Thu May 29 18:06:26 2003 Kristian Rietveld <kris@gtk.org>
Merged from stable.
* gtk/gtktreeview.c (gtk_tree_model_set_model): reset a bunch
of row reference when we unset the model. Also reset
dy and top_row_dy. (Fixes#109289, patch from Owen Taylor).
Thu May 29 17:12:19 2003 Kristian Rietveld <kris@gtk.org>
Merged from stable.
* gtk/gtktreeview.c (gtk_tree_view_set_cursor_on_cell): cancel
the current editing, if it exists. (Fixes#108956, reported by
Michael Natterer).
Thu May 29 17:06:09 2003 Kristian Rietveld <kris@gtk.org>
Merged from stable.
* gtk/gtktreeview.c (check_selection_helper): new function,
(gtk_tree_view_row_deleted): traverse the tree from the
deleted node to see whether the selection changed, instead of
just checking this node. (Fixes#107400, reported by 'Duncan').
Thu May 29 16:31:34 2003 Kristian Rietveld <kris@gtk.org>
Merged from stable.
* gtk/gtktreeview.c (gtk_tree_view_maybe_begin_dragging_row),
(gtk_tree_view_drag_begin): set the DnD icon in _drag_begin
instead of _maybe_begin_dragging_row, so the icon can be
overridden by apps. (Fixes#104374, patch from Daniel Elstner).
Thu May 29 16:14:04 2003 Kristian Rietveld <kris@gtk.org>
Merged from stable.
* gtk/gtktreeview.c (gtk_tree_view_start_editing): correct
cell_area x/width for the expander if needed. (Fixes#101748,
reported by Dave Cook and Mariano Suarez-Alvarez).
Thu May 29 16:01:38 2003 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_real_set_cursor): check
if tree/node are still the same after _internal_select_node.
(Fixes#92256, reported by edscott).
Thu May 29 15:38:30 2003 Kristian Rietveld <kris@gtk.org>
Fixes#75745, reported by Richard Hult. Merged from stable.
* gtk/gtktreeview.c (gtk_tree_view_bin_expose): set/unset
GTK_CELL_RENDERER_FOCUSED flag whether the current node is the
cursor or not.
* gtk/gtktreeviewcolumn.c (gtk_tree_view_column_cell_process_action):
if we are rendering a cursor row, and the cell the be
processed has focus, then set the GTK_CELL_RENDERER_FOCUSED
flag (else we unset it).
Thu Apr 17 09:57:44 2003 Jonathan Blandford <jrb@gnome.org>
* gtk/gtktreeview.c (validate_visible_area): remove infinite loop
caused by not clearing the scroll_to_path.
2003-03-26 Sven Neumann <sven@gimp.org>
* gtk/gtktreeview.c: rewrote the function that does node and arrow
prelighting, queue all redraws from here (Fixes bug #108792).
annoying everybody I will write a short summary here.
Fixes for: #102890, #103198, #102618, #93629, #100172, #101235, #96650,
#102379.
Other than that also a ListStore fix and a TreeView scrolling fix.
Those interested in the hairy details can checkout gtk+/ChangeLog.
Thu Dec 19 03:58:36 2002 Kristian Rietveld <kris@gtk.org>
* tests/testtreeflow.c: the rand variable should be static to
avoid conflicts with rand(). (#100844, reported by Soeren Sandmann,
fix pointed out by Matthias Clasen).
Thu Dec 19 03:56:23 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_real_select_cursor_row): if we
started editing, we handled this key signal, so return TRUE.
(#100532, reported by Soeren Sandmann).
Tue Dec 10 02:14:12 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_get_path_at_pos): x can be in
the range [0, upper], which can be bigger than [0, page_size].
(Fixed#99778, reported and testcase provided by Carlos Garnacho
Parro).
Tue Dec 10 01:58:43 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (validate_visible_area): implement a working
use_align = FALSE implementation (also mentioned in #91335, reported
by Juri Pakaste).
* gtk/gtktreeview.c (validate_visible_area): only free the
scroll_to_path if we are done with validating (fixes#93584, reported
and testcase provided by Erik Simonsen).
* gtk/gtktreeviewcolumn.c (gtk_tree_view_column_cell_process_action):
set the GTK_CELL_RENDERER_FOCUSED flag where appropriate. (fixes
#75745, reported by Richard Hult).
* gtk/gtktreeviewcolumn.c (gtk_tree_view_column_cell_get_position):
initialize cellinfo to NULL to silence the compiler.
Tue Nov 26 22:26:04 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtk{tree,list}store.c (gtk_{tree,list}_store_real_set_value):
add a gtk_list_store_sort_iter_changed line for some special
case ... (#96647 (issue 1), testcases from Soeren Sandmann and
Daniel Elstner).
Tue Nov 26 22:18:06 2002 Kristian Rietveld <kris@gtk.org>
Inconsistent state for toggle renderers, requested by Paolo Bacchilega
in #88130.
* gtk/gtktreeprivate.h: move GtkCellRendererInfo here.
* gtk/gtkcellrenderer.c: moved GtkCellRendererInfo away,
fix some indentation issues.
* gtk/gtkcellrenderertoggle.c (gtk_cell_renderer_toggle_class_init),
(gtk_cell_renderer_toggle_set_property),
(gtk_cell_renderer_toggle_get_property),
(gtk_cell_renderer_toggle_render): add an inconsistent property.
* gtk/gtkstyle.c (gtk_default_draw_check),
(gtk_default_draw_option): support drawing inconsistent
options/checks for cells.
Tue Nov 26 22:14:14 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtkcellrenderertext.c (gtk_cell_renderer_text_editing_done),
(gtk_cell_renderer_text_start_editing): add a focus_out_id to avoid
calling _editing_done twice (which has nasty side-effects). (#96647,
(issue 2) testcase from Soeren Sandmann).
Tue Nov 26 22:12:21 2002 Kristian Rietveld <kris@gtk.org>
#82739, patch from Padraig O'Briain.
* gtk/gtktreeviewcolumn.[ch]: add
gtk_tree_view_column_cell_get_position()
Tue Nov 26 22:06:29 2002 Kristian Rietveld <kris@gtk.org>
Yes, this chunk breaks ABI compatibility. Owen knows about it and
agreed with it. It doesn't break ABI that bad though, things will
still work. Please keep it silent :P.
This patch fixes some keynav issues reported by Narayana Pattipati
in #81633. (Also mentioned in #92037 (Sun tracking bug)).
* gtk/gtkmarshalers.list: add two silly marshalers
* gtk/gtktreeview.[ch] (gtk_tree_view_real_select_all),
(gtk_tree_view_real_unselect_all),
(gtk_tree_view_real_select_cursor_row),
(gtk_tree_view_real_toggle_cursor_row),
(gtk_tree_view_real_expand_collapse_cursor_row),
(gtk_tree_view_real_start_interactive_search): change the return
type from void to gboolean, update prototypes, functions, signals and
entries in GtkTreeViewClass,
(gtk_tree_view_class_init): add select_cursor_row binding for
enter key,
(gtk_tree_view_key_press): only navigate the header button if the
header is also visible ...
Tue Nov 26 22:05:48 2002 Kristian Rietveld <kris@gtk.org>
API bit of #75745, reported by Richard Hult.
* gtk/gtkcellrenderer.h (GtkCellRendererState): add
GTK_CELL_RENDERER_FOCUSED, rest of this bug fix will follow later.
Wed Nov 20 19:29:50 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtkrbtree.c (gtk_rbtree_reorder_sort_func): return a value
in the range of [-1, 1] instead [0, 1],
(gtk_rbtree_reorder_invert_func): ditto,
This makes treeview reordering working on platforms as FreeBSD and
solaris, thanks go to Heiner Eichmann for finding this out and
sending in a patch (#98251).
Wed Nov 20 19:27:07 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreestore.c (node_free): only free the data list if
node->data is not NULL,
(gtk_tree_store_remove): free the data list from the node if
needed. (#94728, pointed out by Peter Bloomfield).
Wed Nov 20 19:23:13 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_remove_column): stop editing
and set the edited_column to NULL if edited_column is set.
(#91288, modified patch from Josh Parsons).
Wed Nov 20 19:20:34 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_size_allocate): do a full
redraw if vadjustment->value is bigger than tree_view->priv->height,
(gtk_tree_view_row_deleted): free the row ref if it isn't valid
anymore. (#83726, reported by Robert Kinsella).
Mon Nov 18 20:42:27 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_expand_to_path): modify and
free tmp instead of path ... (patch from #97927).
Mon Nov 18 20:31:20 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtkcellrenderertext.c (gtk_cell_renderer_text_start_editing):
only _set_text if celltext->text is not NULL. (#97815, reported
and testcase provided by Vitaly Tishkov).
Mon Nov 18 20:28:28 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeselection.c (gtk_tree_selection_real_modify_range):
also update the anchor_path, makes behaviour consistent with the
other selection modification functions. (#96801, reported and
testcase provided by Vitaly Tishkov).
Mon Nov 18 20:17:56 2002 Kristian Rietveld <kris@gtk.org>
Hrm, this fixes up lots of mistakes in my swap/move code ... Some
of these mistakes where pointed out by Vitaly Tishkov in bugs
#97403, #97404, #97412, #97618.
* gtktreestore.[ch]: gtk_tree_store_move is now private, use
gtk_tree_store_move_{before,after} instead now. Lots of fixes
(more like a rewrite :) in the _move and _swap functions.
* gtkliststore.[ch]: likewise.
Sun Oct 27 15:58:30 2002 Kristian Rietveld <kris@gtk.org>
This fixes a scrolling bug. Shouldn't cause problems, but you
never know ... (#81627, testcase by Timo Sirainen).
* gtk/gtktreeview.c (validate_visible_area): add a temporary
implemention for non use_align, always update dy and ->top_row
if we scroll here,
(gtk_tree_view_clamp_node_visible): reimplement using
_scroll_to_cell (#73895).
Wed Oct 23 01:03:43 2002 Kristian Rietveld <kris@gtk.org>
Another feature to create truly ugly TreeViews!: style properties
for the even/odd colors used for row hinting. (#71595, reported
by Owen Taylor).
* gtk/gtktreeview.c (gtk_tree_view_class_init): add even_row_color
and odd_row_color style properties.
* gtk/gtkstyle.c (get_darkened_gc): support darken_count == 0 case,
(gtk_default_draw_flat_box): rework cell coloring code to support
user-provided even/odd row colors.
Wed Oct 23 01:01:52 2002 Kristian Rietveld <kris@gtk.org>
Cache signal IDs to speed up signal emission. This is a good speedup
because GtkTreeModel emits a big number of signals.
* gtk/gtktreemodel.c (gtk_tree_model_base_init): save IDs returned
by g_signal_new,
(gtk_tree_model_row_changed): use g_signal_emit instead of
g_signal_emit_by_name,
(gtk_tree_model_row_inserted): ditto,
(gtk_tree_model_row_has_child_toggled): ditto,
(gtk_tree_model_row_deleted): ditto,
(gtk_tree_model_rows_reordered): ditto.
Wed Oct 23 00:56:15 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeselection.c (model_changed): new function,
(gtk_tree_selection_selected_foreach): monitor changes in the model,
bail out if the model has been changed from the foreach func.
(#50263, reported by Havoc Pennington).
* gtk/gtktreeselection.c (_gtk_tree_selection_internal_select_node):
free anchor if applicable (#94868, reported and testcase provided by
Daniel Elstner).
Sun Oct 13 12:29:15 2002 Manish Singh <yosh@gimp.org>
* gtk/gtkcolorsel.[ch] gtk/gtkcombo.[ch] gtk/gtkplug.[ch]
gtk/gtksocket.[ch] gtk/gtktreeview.[ch] gtk/gtktreeviewcolumn.[ch]:
Deprecation cleanup
* gtk/gtkcolorseldialog.c: make window not resizable (lost
accidently in the previous cleanup)
Mon Oct 7 15:10:00 2002 Owen Taylor <otaylor@redhat.com>
* gdk/gdkdisplay.[ch] gdk/gdkinternals.h
gdk/gdkwindow.[ch] gdk/linux-fb/gdkwindow-fb.c
gdk/win32/gdkwindow-win32.c gdk/x11/gdkwindow-x11.c:
- Replace GdkPointerHooks with a multihead-safe
GdkDisplayPointerHooks, leave GdkPointerHooks
around for singlehead.
- Add gdk_display_get_pointer() to get the pointer
location with the screen it is on.
* gdk/gdk.def gdk/gdkdisplay.[ch] gdk/gdkscreen.[ch]:
Change gdk_screen_get_window_at_pointer() to
gdk_display_get_window_at_pointer().
* gtk/gtktreeview.c demos/gtk-demo/changedisplay.c
tests/testgtk.c: Use gdk_display_get_window_at_pointer(),
not gdk_screen_get_window_at_pointer().
* gtk/gtkcolorsel.c: Fix grabbing color to be multihead
safe.
* gtk/gtkwidget.c: Allow gtk_widget_push_colormap (NULL).
since it is useful for writing code that doesn't
know the dcurrent state but needs a clean colormap.
* gtk/gtkrc.c: When loading the settings for a particular
screen, only reset toplevels on that screen.
* gtk/gtkiconfactory.h: Fix #ifdef GTK_MULTIHEAD_SAFE
that should have been #ifndef GTK_MULTIHEAD_SAFE.
Thu Oct 3 14:13:33 2002 Owen Taylor <otaylor@redhat.com>
* gdk/gdkevents.c (gdk_event_new): Add a 'type'
parameter, make public.
* gdk/gdkevents.c (gdk_event_copy): Copy the screen.
* gdk/gdkevents.c gdk/linux-fb/gdkmain-fb.c
gdk/x11/gdkevents-x11.c gdk/win32/gdkevents-win32.c:
_gdk_event_new() => gdk_event_new().
* gdk/win32/gdkevents-win32.c (real_window_procedure):
Fix event_private->screen breakage that results from evil
encapsulation breakage here.
* gtk/gtkclist.c gtk/gtkcombo.c gtk/gtkcontainer.c
gtk/gtkdialog.c gtk/gtkdnd.c gtk/gtkdrawingarea.c
gtk/gtkimcontextsimple.c gtk/gtklist.c gtk/gtkmenu.c
gtk/gtknotebook.c gtk/gtkplug.c gtk/gtkselection.c
gtk/gtktext.c gtk/gtktreeitem.c gtk/gtktreeview.c
gtk/gtkviewport.c gtk/gtkwindow-decorate.c gtk/gtkwindow.c
tests/testgtk.c: Remove most usage of stack-allocated
GdkEvent structures.
* gtk/gtktreeview.c: Use a cut-and-paste of the full
send_focus_event() from gtkwindow.c that does the necessary
notification of the ::has-focus property and setting of
the HAS_FOCUS flag.x
* gtk/gtkdnd.c: Clean up some mess/duplicated code; removing
an extraneous use of a GdkEvent.
Fri Jul 26 22:53:37 2002 Kristian Rietveld <kris@gtk.org>
API additions: _move, _reorder and _swap for stores, path
constructor.
* gtk/gtktreemodel.[ch] (gtk_tree_path_new_from_indices): new function.
* gtk/gtkliststore.[ch]: added gtk_list_store_reorder_func (private),
gtk_list_store_reorder, gtk_list_store_swap, gtk_list_store_move.
* gtk/gtktreestore.[ch]: added gtk_tree_store_reorder_func (private),
gtk_tree_store_reorder, gtk_tree_store_swap, gtk_tree_store_move.
Fri Jul 26 22:32:57 2002 Kristian Rietveld <kris@gtk.org>
Merge from stable:
* gtk/gtktreestore.c (node_free): return FALSE,
(gtk_tree_store_finalize): use g_node_traverse instead of
g_node_children_foreach, so the whole tree will be freed (#88854,
patch from Emmanuel Briot).
Fri Jul 26 22:32:24 2002 Kristian Rietveld <kris@gtk.org>
Merge from stable:
* gtk/gtktreeview.c (gtk_tree_view_button_press): fix some memleaks,
(#84426, patch from Matthias Clasen).
Fri Jul 26 22:31:25 2002 Kristian Rietveld <kris@gtk.org>
Merge from stable:
* gtk/gtktreeview.c (gtk_tree_view_unref_tree_helper): _iter_children
check shouldn't be in g_return_return_val_if_fail (pointed out by
Josh Green, #88997),
(gtk_tree_view_set_model): call _gtk_tree_view_column_unset_model
for each column when we unset the model (part of #82484),
(gtk_tree_view_get_cell_area): return if we ran out of tree or
if we got an invalid path (#82376).
* gtk/gtktreeprivate.h: add _gtk_tree_view_column_unset_model.
* gtk/gtktreeviewcolumn.c: implement _gtk_tree_view_column_unset_model
which disconnects the sort_column_changed_signal (part of #82484).
* gtk/gtkliststore.c (gtk_list_store_insert): append row if the
given postion is off the end of the tree (#85813).
* gtk/gtkentry.c (gtk_cell_editable_key_press_event): let's use
2-space indent, commit changes if up/down keys has been pressed,
this overrides the focus key foo so the user won't be surprised
(#84665).
Tue Jul 2 00:33:26 2002 Jonathan Blandford <jrb@gnome.org>
* gtk/gtktreeview.c (validate_visible_area): only validate the
visible area if we've ever been requisitioned.
Mon Jul 1 17:04:09 2002 Jonathan Blandford <jrb@redhat.com>
* gtk/gtkliststore.c (gtk_list_store_real_set_value): sync up
white space/variable names to match tree_store equiv.
* gtk/gtktreestore.c (gtk_tree_store_real_set_value): sort if we
set the value.
Fri Jun 14 15:41:50 2002 Jonathan Blandford <jrb@redhat.com>
* gtk/gtktreeview.c: Fix bug #84268, where validate_rows sometimes
didn't remove itself correctly. Thanks to Dave Camp for the fix.
Fri Jun 14 15:09:11 2002 Jonathan Blandford <jrb@redhat.com>
* gtk/gtktreeview.c (gtk_tree_view_set_adjustments):
disconnect_by_func instead of disconnect_by_data. Someone else
could use the same data as us.
* gtk/gtktreeview.c (do_validate_rows): update the adjustment
immediately after we update the size. Fixes some scroll_to bugs.
(validate_visible_area): ditto
Fri Jun 7 23:11:42 2002 Jonathan Blandford <jrb@gnome.org>
* gtk/gtktreeview.c (gtk_tree_view_real_expand_row): Fix sizing
bug.
* docs/reference/gtk/tmpl/gtkbutton.sgml: Remove ^M's.
Not sure why all the docs updated.
Wed May 8 16:14:49 2002 Soeren Sandmann <sandmann@daimi.au.dk>
* gtk/gtktreeview.c
(gtk_tree_view_init): set_redraw_on_allocate (FALSE);
(gtk_tree_view_size_allocate): invalidate last column if width
changed.
(gtk_tree_view_bin_expose): skip over cells that aren't in
event->region
Mon May 6 23:48:14 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_map_expanded_rows_helper): call
func on current node before the child nodes.
Mon May 6 23:17:42 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_motion_draw_column_motion_arrow):
unset user_data before destroying the window. (fixes#80065).
Sun May 5 16:42:32 2002 Kristian Rietveld <kris@gtk.org>
The "big treeview focus patch". Fixes several issues and adds some
goodies. Related bugs: #73676, #73734, #78660.
* gtk/gtktreeview.h: add gtk_tree_view_set_cursor_on_cell
* gtk/gtktreeview.c (gtk_tree_view_button_press): focus on a cell
if applicable,
(gtk_tree_view_bin_expose): set_cell_data before iterating columns,
add support for row-spanning focus rectangles,
(gtk_tree_view_has_special_cell): new function,
(gtk_tree_view_move_cursor_left_right): add support for multiple
focusable cells in one column,
(gtk_tree_view_set_cursor): call _set_cursor_on_cell now,
(gtk_tree_view_set_cursor_on_cell): copy of _set_cursor, extended
with focus_cell parameter,
(gtk_tree_view_search_iter): removed unused column variable,
(gtk_tree_view_start_editing): add neighbor size code to allow
for multiple editable cells in one column.
* gtk/gtktreeviewcolumn.c (_GtkTreeViewColumnCellInfo): add
in_editing_mode field,
(gtk_tree_view_column_get_edited_cell): new function, removed
_get_editable_cell,
(_gtk_tree_view_column_get_cell_at_pos): new function,
(gtk_tree_view_column_pack_end): s/g_new/g_new0/ ...,
(gtk_tree_view_column_cell_process_action): loads of changes to get
it right and to allow for multiple special cells, etc,
(gtk_tree_view_column_cell_first): new function,
(gtk_tree_view_column_cell_last): ditto,
(gtk_tree_view_column_cell_next): ditto,
(gtk_tree_view_column_cell_prev): ditto,
(gtk_tree_view_column_cell_focus): add left and right parameters,
allow for multiple special cells,
(gtk_tree_view_column_cell_is_visible): add assertion,
(gtk_tree_view_column_focus_cell): new function,
(gtk_tree_view_column_stop_editing): unset in_editing_mode flag,
(_gtk_tree_view_column_get_neighbor_sizes): iterate through cells
correctly
* gtk/gtktreeviewcolumn.h: add gtk_tree_view_column_focus_cell
* gtk/gtktreeprivate.h: s/_get_editable_cell/_get_edited_cell/, add
_gtk_tree_view_column_get_cell_at_pos, add new parameters to
_gtk_tree_view_column_cell_focus.
* tests/testtreeedit.c: add some cells in order to test new code.
Mon Apr 29 18:28:00 2002 Owen Taylor <otaylor@redhat.com>
Integrate Erwann Chenede's multihead changes for the gtk/ directory.
* gtk/gtkclipboard.[ch]: Add gtk_clipboard_get_for_display(),
make internals multihead aware.
* gtk/gtkcolorsel.[ch]: Add
gtk_color_selection_set_change_palette_with_screen_hook () [ugh!]
make up for non-multihead safety of
gtk_color_selection_set_change_palette_hook()
* gtk/gtkinvisible.[ch] gtk/gtkmenu.[ch] gtkwindow.[ch]: Add
gtk_{invisible,menu,window}_set_screen(); add "screen" properties
for GtkWindow and GtkMenu.
* gtk/gtkplug.[ch]: Add gtk_plug_construct_for_display(),
gtk_plug_new_for_display(). Multihead fixes.
* gtk/gtkselection.[ch]: Add gtk_selection_owner_set_for_display(),
make internals multihead aware.
* gtk/gtksettings.[ch]: Add gtk_settings_get_for_screen(), get
rid of now-useless gtk_settings_constructor().
* gtk/gtkstyle.[ch]: Add gtk_style_get_font_for_display(), fix
check/radio button indicators bitmap handling to be multihead
safe.
* gtk/gtkwidget.[ch]: Add gtk_widget_get_screen(), gtk_widget_has_screen(),
gtk_widget_get_display(), gtk_widget_get_clipboard(),
gtk_widget_get_root_window().
* gtk/gtkbindings.c gtk/gtkbutton.c gtk/gtkclist.c gtk/gtkcombo.c
gtk/gtkctree.c gtk/gtkdnd.c gtk/gtkfilesel.c gtk/gtkgamma.c
gtk/gtkhandlebox.c gtk/gtkhsv.c gtk/gtkimcontext.c gtk/gtklabel.c
gtk/gtklist.c gtk/gtkmain.c gtk/gtkmenuitem.c gtk/gtkmenushell.c
gtk/gtknotebook.c gtk/gtkoldeditable.c gtk/gtkoptionmenu.c
gtk/gtkpaned.c gtk/gtkpreview.c gtk/gtksocket.c gtk/gtktext.c
gtk/gtktextbuffer.c gtk/gtktextview.c gtk/gtktipsquery.c
gtk/gtktooltips.c gtk/gtktreeview.c gtk/gtktreeviewcolumn.c:
misc mechanical multihead-safety fixes.
* gtk/gtkclipboard.c: Use a GtkImage rather than a pixmap for
the dropper, look up the color palette only at realization time,
other multihead fixes.
* gtk/gtkcombo.c (gtk_combo_unrealize): Popdown the list when
unrealizing.
* gtk/gtkentry.c: Only claim ownership of the primary selection
when realized, misc multihead fixes.
* gtk/gtkfontsel.c: Only fill in fonts when attached to a screen,
fix gtk_font_selection_get_font() for multihead.
* gtk/gtkgc.c: make the depth => drawable hash per-screen.
* gtk/gtkinvisible.c: Add a constructor that realizes the
widget, so we get a realized widget with g_object_new() as
well gtk_invisible_new() as before.
* gtk/gtkmain.c: Get rid of unused gtk_visual/gtk_colormap
variables.
* gtk/gtktextdisplay.c: Add warnings if stipple bitmaps
are used on the wrong screen.
* gtk/gtktoolbar.c: Make handling of GtkSettings-based layout
read properties and connect to settings when the screen is changed,
rather than on init/finalize.
* gtk/gtkwindow.c: Fix icon handing to be multihead safe ...
default icon pixmaps/mask are only shared between windows on the
same screen. Misc multihead fixes.
Sat Apr 27 13:49:53 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkclipboard.c (gtk_clipboard_get_for_display):
Update docs to reference GDK_SELECTION_CLIPBOARD rather GDK_NONE.
2002-04-29 Alex Larsson <alexl@redhat.com>
* gdk/linux-fb/gdkproperty-fb.c (gdk_property_get):
Fix silly bug, noticed by Sven Neumann.
Sun Apr 28 22:43:55 2002 Jonathan Blandford <jrb@gnome.org>
* gtk/gtktreemodelsort.c (gtk_tree_model_sort_set_sort_func): Fix
so that you can set a new sort func.
Thu Apr 25 23:36:55 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_search_iter): make the search
dialog not scroll horizontally (prolly fixes#74806).
Wed Apr 24 17:34:16 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_stop_editing): temporarily set
->priv->edited_column to NULL. Pleas read the comment in this
function for an explanation (fixes#79632).
Fri Apr 19 23:38:16 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeprivate.h: add _gtk_tree_view_column_autosize
* gtk/gtktreeview.c: privately export _gtk_tree_view_column_autosize,
and add a small note about that function,
(gtk_tree_view_button_press): check for double click and
"not having an autosize" column before autosizing the column,
* gtk/gtktreeviewcolumn.c (gtk_tree_view_column_set_min_width):
call _gtk_tree_view_column_autosize to update autosized column width
(gtk_tree_view_column_set_max_width): ditto
Fri Apr 19 21:06:39 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_size_allocate): subtract
TREE_VIEW_HEADER_HEIGHT from allocation->height to get the real
size for the tree (fixes#72729),
(gtk_tree_view_real_start_editing): correct cell_area->y for
scrolling due to gtk_tree_view_real_set_cursor (fixes#75687)
Fri Apr 19 16:30:09 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeprivate.h, gtk/gtktreeview.c: rename
last_single_clicked{,_2} to last_button_press{,_2}, as the latter
is a more sane name.
* gtk/gtktreeview.c (gtk_tree_view_button_press): use ->priv->anchor
instead of ->priv->cursor, check for the anchor at another place, as
you can go in edit mode without having an anchor.
Tue Apr 16 17:28:21 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_real_collapse_row): check
->priv->cursor and ->priv->anchor rowrefs before removing
node->children from the rbtree. Also check the
->priv->last_single_clicked and ->priv->last_single_clicked_2 rowrefs
(I think I really need to rename those two someday).
Sun Apr 14 16:56:59 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeprivate.h: add _gtk_tree_view_column_get_editable_cell and
_gtk_tree_view_column_get_neighbor_sizes
* gtk/gtktreeviewcolumn.c (struct _GtkTreeViewColumnCellInfo): add
real_width field,
(_gtk_tree_view_column_get_editable_cell): implement,
(gtk_tree_view_column_cell_process_action): fill info->real_width
(_gtk_tree_view_column_get_neighbor_sizes): implement
* gtk/gtktreeview.c (gtk_tree_view_button_press): make the "editable
widget" show up with the same size as the actual cell, so it doesnt
cover the complete column if there are any other cells in that column.
Sat Apr 13 22:49:45 2002 Kristian Rietveld <kris@gtk.org>
Fixes#75510
* gtk/gtktreeselection.c (gtk_tree_selection_get_selected): make this
function work correctly and more sane
* gtk/gtktreeview.c (gtk_tree_view_real_collapse_row): remove
node->children from rbtree before emitting GtkTreeSelection::changed
Sat Apr 13 17:15:12 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtkcellrenderertext.c (gtk_cell_renderer_text_init): dont set
the mode to GTK_CELL_RENDERER_MODE_EDITABLE by default,
(gtk_cell_renderer_text_class_init): for some reason our default for
editable was TRUE, of course this is FALSE.
(gtk_cell_renderer_text_set_property): update mode when editable
has been changed.
Fri Apr 12 18:32:46 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_real_set_cursor): add
clamp_node argument
(toplevel): update usages of gtk_tree_view_real_set_cursor,
(gtk_tree_view_focus_to_cursor): don't let
gtk_tree_view_real_set_cursor clamp the node, so you won't get
unexpected scrolling
Fri Apr 5 18:28:56 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeselection.c (gtk_tree_selection_set_mode): free
anchor row reference after unselecting the selection (fixes#76272)
Fri Apr 5 18:27:48 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_real_expand_row): only return
when we don't have to open all children (fixes#75736)
Fri Apr 5 18:24:24 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeviewcolumn.c (gtk_tree_view_column_clear): unref
cellrenderer after clearing the attributes of the renderer (fixes
#75592)
Mon Apr 1 22:20:24 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_move_cursor_page_up_down): add
check for y > tree_view->priv->height (fixes#76974)
Mon Apr 1 22:19:39 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreemodelsort.c (gtk_tree_model_sort_sort_level): get
the stamp changes right this time
Mon Apr 1 22:13:24 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreemodel.c (gtk_tree_row_reference_free): only
disconnect the ref callbacks when model == proxy (Thanks go to
Manuel Clos Crespo for the remote debugging)
2002-03-27 Murray Cumming <murrayc@usa.net>
* gtk/gtktreeview.cc: Corrected registered return type of
move-cursor signal. Had to add a marshaller to
gtk/gtkmarshalers.list.
2002-03-26 Dave Camp <dave@ximian.com>
* gtk/gtktreeview.c (gtk_tree_view_button_press): Free the path
after calling gtk_tree_view_row_activated() rather than before.
Sun Mar 24 10:32:38 2002 Jonathan Blandford <jrb@redhat.com>
* gtk/gtktreemodel.c (gtk_tree_path_copy): Make path arg const, #75653
* gtk/gtkfontsel.c (gtk_font_selection_show_available_styles): fix
a warning
* gtk/gtktreeview.c (gtk_tree_view_button_press): remove the grab
when we emit row_activated so that listeners of this signal can
grab the mouse, #75629
Wed Mar 20 22:59:23 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtkrbtree.[ch]: add _gtk_rbtree_set_fixed_height()
* gtk/gtktreeprivate.h: add fixed_height_check field
* gtk/gtktreeview.c (gtk_tree_view_init): initialize
scroll_sync_timer and fixed_height_check
(do_validate_rows): add fixed_height_check. If all validated rows
in the first cycle have the same height, then we set that height for
the entire tree. This is some sort of 'fake' optimization, but helps
a lot for the common case. We keep validating the entire tree in
the background though.
(gtk_tree_view_set_model): reset fixed_height_check
Wed Mar 20 16:36:08 2002 Owen Taylor <otaylor@redhat.com>
* gtk/*.c: Patch from Erwann Chenede, #73900 fixing
a lot of warnings with Forte CC, mostly implicit
casts between void * and function pointers.
* gdk/gdkevents.c (gdk_event_get_state): GdkEventVisibility's
state field is not a GdkModifierType. (Also #73900)
Sun Mar 17 01:11:16 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_size_request): use
do_validate_rows instead of validate_rows_handler (fix by
Mike Pieper, #74126)
Sat Mar 16 23:54:56 2002 Kristian Rietveld <kris@gtk.org>
* gdk/x11/gdkwindow-x11.c (gdk_window_set_static_bit_gravity): just
return when we have an input_only window (fix by Owen Taylor)
* gtk/gtktreeprivate.h (struct _GtkTreeViewPrivate): add
scroll_sync_timer
* gtk/gtktreeview.c (install_scroll_sync_handler): new function,
(scroll_sync_handler): ditto,
(gtk_tree_view_unrealize): take scroll_sync_timer into account
(gtk_tree_view_row_deleted): install scroll_sync_timer instead of
calling top_row_to_dy/dy_to_top_row directly
-- this greatly speeds up clearing the model (#73199)
* gtk/gtktreemodelsort.c
(gtk_tree_model_sort_convert_path_to_child_path): fix up this function,
for some reason I really screwed it up (fixes#74663)
Mon Mar 11 01:25:14 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_button_press): compare path with
cursor path and not with the selected iter in the 'decide to edit'
check
Thu Mar 7 16:46:58 2002 Jonathan Blandford <jrb@redhat.com>
* gtk/gtktreeview.c (validate_visible_area): get rid of really
bad focus loop.
(gtk_tree_view_clamp_node_visible): only clamp the node when
realized. Need to replace this with scroll_to_cell sometime.
(gtk_tree_view_header_focus): clickable or reorderable columns are
focusable, #73656
* gtk/gtktreeviewcolumn.c (gtk_tree_view_column_get_widget): fix
docs to reflect behaviour change, #73682
Thu Mar 7 02:58:16 2002 Jonathan Blandford <jrb@redhat.com>
* gtk/tmpl/gtkliststore.sgml: start implementing
* gtk/question_index.sgml: "I can set with the tree, but not
get???!?!"
Wed Mar 6 23:20:51 2002 Jonathan Blandford <jrb@redhat.com>
and Kristian Rietveld <kris@gtk.org>
Finishing touch for 2.0.0 release, fixes#70782, #72729, the
'stealth' bug and other last-minute minor issues.
* gtk/gtktreeview.c (gtk_tree_view_bin_expose): set dnd dest line
drawing right. We can't draw the line at the position of the next
row, because that one still has to be drawn. So draw everthing at
a -1 offset.
(validate_visible_area): add check for invalid descendants and
NULL scroll_to_path path, get scrolling right. Also, fix the
area_above value. Pretty amazing I got it wrong.
(get_logical_dest_row): add gtk-tree-model-drop-append magic, so
dragging a row to the end of the model works right.
(gtk_tree_view_get_dest_row_at_pos): minor floating point fix
(gtk_tree_view_start_editing): add call to validate_row
(gtk_tree_view_tree_to_widget_coords): Never subtract
HEADER_HEIGHT from y values anymore!!!
(gtk_tree_view_widget_coords_to_tree): ditto.
(gtk_tree_view_scroll_to_point): allow -1 as values for the
scroll_to coords
(gtk_tree_view_move_cursor_page_up_down): Don't need scroll_to_y
as clamp_node_visible will make it work.
* gtk/gtktreestore.c (gtk_tree_store_drag_data_received): also check
path depth, as we can't get iters from empty paths
* gtk/gtkliststore.c (gtk_list_store_drag_data_received): handle
gtk-tree-model-drop-append
* gtk/gtktreednd.c (gtk_tree_set_row_drag_data): free path_str
* tests/testtreeflow.c (main): select path where we are scrolling to
* gtk/gtktreemodelsort.c: (gtk_tree_model_sort_insert_value):
Update offsets before finding where to insert the new value.
* gtk/gtktreeview.c: (validate_visible_area): Make sure we redraw when
we scroll, instead of just updating the scroll position variables.
Tue Mar 5 10:29:09 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtktreeview.c (do_presize_handler)
gtk/gtktreeview.c (do_validate_rows): Don't use this
same functions as idle callbacks and directly, to avoid
threading deadlocks. (#72392, Scott Guilbeaux)
* gtk/gtktable.c (gtk_table_size_request_init): Fix
row/column confusion from recent patch. (#73505,
Vitaly Tishkov.)
Fri Mar 1 23:59:35 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeviewcolumn.c (gtk_tree_view_column_cell_get_size): set
first_cell to FALSE after first iteration
* gtk/gtktreeview.c (validate_visible_area): reduce usage of
GTK_RBNODE_GET_HEIGHT, check for node != NULL,
(gtk_tree_view_top_row_to_dy): remove call to gtk_adjustment_changed
(gtk_tree_view_search_iter): select iter after scrolling
Tue Feb 26 19:47:16 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (validate_visible_area): take into account
that a path from a rowref can be NULL. (#72623 and #72650)
* gtk/gtktreeviewcolumn.c (gtk_tree_view_column_cell_render_or_focus):
let focus_rectangle be the same as cell_area for empty cells (#69900)
Mon Feb 25 01:14:26 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktextlayout.c (find_display_line_above): free iter before
going to done
* gtk/gtktreeview.c (validate_visible_area): free above_path,
(set_destination_row): free path before returning,
(gtk_tree_view_set_drag_dest_row): free current_dest
Sat Feb 23 19:05:34 2002 Jonathan Blandford <jrb@redhat.com>
* gtk/gtktreeview.c (validate_visible_area): Didn't refind node
when it was NULL. Bug found by Tor Lillqvist.
Wed Feb 20 16:44:05 2002 Jonathan Blandford <jrb@redhat.com>
* gtk/gtktreeview.c (gtk_tree_view_scroll_to_cell): delay
scrolling until we try to draw the window.
* gtk/gtktreeview.c (validate_visible_area): Implement
scroll_to_cell.
Sat Feb 23 03:10:20 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_key_press): honor min_width and
max_width while resizing columns (pointed out by Jorn Baayen)
Fri Feb 22 18:36:45 2002 Owen Taylor <otaylor@redhat.com>
Fixes for AIX compilation from Miroslaw Dobrzanski-Neumann,
#72182.
* demos/gtk-demo/main.c gtk/gtktreeview.c gtk/gtktoolbar.c
gtk/gtkpaned.c gtk/gtkobject.c gtk/gtkcontainer.c
gtk/gtkcolorsel.c gtk/gtkcellrender.c gdk/x11/xsettings-client.h:
Squash trailing commas on enumerations.
* gdk/gdktypes.h: Drop GDK_RELEASE_MASK to 1 << 30 instead
of 1 << 31 to work around AIX compiler problem. (C standard
seems to imply that compiler is required to use an unsigned
type for the enum value in this case.)
* gdk/gdkpixbuf-drawable.c: Fix lvalue casts.
* gtk/gtkwindow.h: Fix use of enum types for bitfields ...
compilers may choose to use a signed type for bitfields.
Fri Feb 22 22:39:59 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeprivate.h: add last_single_clicked and
last_single_clicked_2 rowrefs and add disable_popdown to the
bitfield
* gtk/gtktreeview.c (gtk_tree_view_destroy): add destroy stuff
for two new rowrefs
(gtk_tree_view_button_press): add some 'advanced' button handling,
so double click is being handled right (double click madness was
discovered by Anders Carlsson)
* gtk/gtktreeview.c (gtk_tree_view_set_property): add missing
break
(gtk_tree_view_class_init): default value of headers_visible
should be TRUE (both pointed out by Damon Chaplin, #71986)
* gtk/gtktreeview.c (gtk_tree_view_real_start_interactive_search):
connect to populate_popup,
(gtk_tree_view_search_disable_popdown): new function,
(gtk_tree_view_real_search_enable_popdown): ditto,
(gtk_tree_view_search_enable_popdown): ditto,
(gtk_tree_view_search_dialog_destroy): check for
gtk-tree-view-popdown-disabled (#71868)
* gtk/gtktreeview.c (gtk_tree_view_set_reorderable): move
->priv->reorderable assignment to bottom. (#72122)
Thu Feb 21 23:02:29 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.[ch]: add keynav handling for unselect all,
focus column header, change focus with arrow keys in column headers,
column reordering, column resizing, small try to fix page up/down
(this fixes#70889, and fixes a great deal of #53580)
Tue Feb 19 22:10:59 2002 Kristian Rietveld <kris@gtk.org>
* gtktreeviewcolumn.c (gtk_tree_view_column_mnemonic_activate): new
function
(gtk_tree_view_column_create_button): use g_signal_* instead of
gtk_signal_*, hook up _mnemonic_activate callback
(gtk_tree_view_column_update_button): use
gtk_label_set_text_width_mnemonic instead of gtk_label_set_text
(#69095)
* gtktreeview.c (gtk_tree_view_class_init): remove key bindings
for C-f and C-b, let treeview search use C-f (instead of C-s)
(#61886)
* gtkrc.key.emacs: add some GtkTreeView bindings
Tue Feb 19 17:36:31 2002 Kristian Rietveld <kris@gtk.org>
* gtktreeprivate.h, gtktreeviewcolumn.[ch], gtktreeview.c: change
gtk_tree_view_column_cell_render,
gtk_tree_view_column_cell_focus,
gtk_tree_view_column_cell_draw_focus and
gtk_tree_view_column_cell_set_dirty to be private functions.
* gtktreeviewcolumn.[ch]: add install_handler argument to
_cell_set_dirty to control if _mark_rows_col_dirty (which calls
install_presize_handler) gets called, set widths correctly so
autosizing works (#71870)
* gtktreeview.c (gtk_tree_view_column_autosize): new function,
(gtk_tree_view_button_press): make double click on column
separator resize the row (#71870)
(gtk_tree_view_get_dest_row_at_pos): change DnD threshold to 33%
(#71869, suggestion by Anders Carlsson)
Mon Feb 18 14:17:59 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkclist.c (adjust_adjustments)
* gtk/gtklayout.c (gtk_layout_size_allocate)
* gtk/gtktextview.c (gtk_text_view_size_allocate)
* gtk/gtktreeview.c (gtk_tree_view_size_allocate)
* gtk/gtkviewport.c (gtk_viewport_size_allocate):
Standardize on a page increment of page minus 1 line
rather than half a page (#51027, Eric Fischer)
* gtk/gtkviewport.c (gtk_viewport_size_allocate):
Change step increment to be 0.1 * page_size height rather than
a fixed 10 pixels.
Sun Feb 17 00:13:06 2002 Kristian Rietveld <kris@gtk.org>
This commit lands the 'dy patch'.
* gtk/gtktreeview.c (validate_rows_handler): update top_row or dy,
(gtk_tree_view_top_row_to_dy): new function,
(gtk_tree_view_row_changed): update top_row or dy,
(gtk_tree_view_rows_reordered): update top_row
Mon Feb 11 21:42:17 2002 Kristian Rietveld <kris@gtk.org>
Implements DnD scrolling and fixes#71139
* gtk/gtktreeview.c (gtk_tree_view_vertical_autoscroll): new function,
(scroll_row_timeout): new function,
(gtk_tree_view_drag_motion): create scroll_timeout, so
scroll_row_timeout gets called
Mon Feb 11 17:54:46 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_size_allocate): set upper
member of hadjustment correct, so the hscrollbars of lists smaller
than 1 page (in width) are somewhat saner
Mon Feb 11 16:40:44 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_set_model): install presize
handler, so the validate_rows_handler will always be run (#70997)
Thu Feb 7 19:39:27 2002 Kristian Rietveld <kris@gtk.org>
Fixes#70782 and some drag dest rectangle/line issues
* gtk/gtktreeview.c (gtk_tree_view_set_model): set
GTK_TREE_VIEW_IS_LIST flag (we can switch from a TreeStore to a
ListStore for example)
(gtk_tree_view_get_path_at_pos): revert previous change, we
shouldn't correct for the header, because we are taking bin_window
coordinates here
(gtk_tree_view_set_drag_dest_row): queue old drag_dest row and
upper/lower neighbors for draw, so the drag dest rectangle/line will
be cleared correctly
(gtk_tree_view_get_dest_row_at_pos): correct for treeview header
here, as drag_y is relative to the widget and _get_path_at_pos wants
coords relative to bin_window, draw black outline rectangle after
drawing the cells
Wed Feb 6 23:28:39 2002 Kristian Rietveld <kris@gtk.org>
Fixes#70708
* gtk/gtktreeview.c (gtk_tree_view_get_path_at_pos): we're dealing
with widget coordinates here, so take the header height into
account while converting
(gtk_tree_view_widget_to_tree_coords): take header height into
account
(gtk_tree_view_tree_to_widget_coords): ditto
(gtk_tree_view_get_dest_row_at_pos): we were passing coords
relative to the tree with _get_path_at_pos, while that function
wants coords relative to the widget
Sat Feb 2 18:07:51 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_size_allocate): set upper member
of vadjustment correct, so the vscrollbars of lists smaller than
1 page are somewhat saner (#66905)
* gtk/gtkliststore.c (gtk_list_store_remove_silently): do not
increment the stamp, liststore is a model with persisting iters
Fri Feb 1 00:37:49 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_move_cursor_page_up_down): use
y coordinate relative to the tree and not the treeview window
(fixes the PgDn/PgUp brokenness)
Fri Feb 1 23:40:31 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_button_press): adjust
cell_area and background_area for possible treeview scroll
(fixes#70283, #70065)
Fri Feb 1 22:20:13 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_size_allocate): use
height - page_size not height - allocation->height (fixes#66269)
Fri Feb 1 20:50:29 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_dy_to_top_row): set tree to
NULL if tree_view->priv->tree is NULL (#70152, patch by John Harper).
Wed Jan 30 18:46:14 2002 Jonathan Blandford <jrb@redhat.com>
* gtk/gtkliststore.c (gtk_list_store_set_valist): only emit the
signal if an interesting column changes.
* gtk/gtktreestore.c: ditto.
* gtk/gtktreeview.c (gtk_tree_view_set_cursor): change behavior so
that it no longer grabs
Tue Jan 29 17:16:17 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtklayout.c: Patch from Jacob Berkman to fix problem
when the height/width of a layout was set before the
adjustments were added. (#66294)
* gtk/gtktreeview.c: Warning cleanups.
Tue Jan 29 18:50:46 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_move_cursor_page_up_down): free
cursor_path after usage
(gtk_tree_view_real_start_interactive_search): use new g_signal
and g_object calls
(gtk_tree_view_search_dialog_destroy): use g_object calls and free
selected_iter if set
(gtk_tree_view_search_position_func): rework so it will never ever
appear offscreen (#68492)
(gtk_tree_view_search_move): use new g_object calls
(gtk_tree_view_search_init): free selected_iter if set, use new
g_object calls
(gtk_tree_view_leave_notify): don't destroy interactive search
dialog
Tue Jan 29 23:07:03 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_real_start_interactive_search):
send focus in event
(gtk_tree_view_search_dialog_destroy): send focus out event (#66466)
2002-01-28 Jon Trowbridge <trow@gnu.org>
* gtk/gtktreeview.c (gtk_tree_view_set_model): When setting the
GtkTreeView's model, set prelight_node, prelight_tree,
button_pressed_node and button_pressed_tree to NULL. (#69603)
Mon Jan 28 14:44:40 2002 Jonathan Blandford <jrb@redhat.com>
* gtk/gtktreeview.c (gtk_tree_view_real_select_cursor_row): Only
activate/edit the row if shift is not pressed, #69248
Sun Jan 27 22:13:02 Kristian Rietveld <kris@gtk.org>
Fix for bug #69586
* gtk/gtktreeprivate.h: get rid of tab_offset, introduce
expander_size
* gtk/gtktreeview.c: get rid of ->priv->tab_offset, introduce
expander_size caching (from style), fix CELL_HEIGHT macro,
use MAX ("RBNODE_HEIGHT", expander_size) (differs per case) for
row height calculation, added style_set callback
Thu Jan 24 23:03:24 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_get_path_at_pos): update docs,
return current FALSE if x is smaller than the current visible area,
not than the requested area, don't correct y coordinate,
TREE_WINDOW_Y_TO_RBTREE_Y will do that. Fixes#67477.
Thu Jan 24 11:53:19 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtktreeview.c (gtk_tree_view_destroy): Don't clear
the model until we clean up all the other objects
that might refer to the object.
Thu Jan 17 16:34:55 2002 Jonathan Blandford <jrb@redhat.com>
* gtk/gtktreeview.c (gtk_tree_view_real_select_cursor_row): For
some reason, I was activating a row while just selecting it.
Reported by andersca.
(gtk_tree_view_size_request): add a
validate_rows_handler to give us a rough width of the widget.
* gtk/gtktreeviewcolumn.c (gtk_tree_view_column_update_button):
Queue a resize here just in case. It's needed in over half the
cases, and I don't want to do a diff to figure out exactly when
it's needed.
Mon Jan 14 17:42:28 2002 Jonathan Blandford <jrb@redhat.com>
* gtk/gtktreeview.c (gtk_tree_view_stop_editing): allow cancel to
happen.
* gtk/gtktreeview.c (install_presize_handler): only install the
handler if we're realized, #68056
Sat Jan 12 16:57:31 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_real_start_interactive_search):
revert Owen's change (using a strdupped string as object data), so
the interactive search works again
2002-01-03 Anders Carlsson <andersca@gnu.org>
* gtk/gtktreeview.c: Rename gtk_tree_view_queue_draw_node to
_gtk_tree_view_queue_draw_node.
(gtk_tree_view_row_has_child_toggled): Only redraw one node.
* gtk/gtktreesortable.c (gtk_tree_sortable_set_sort_func):
sort_column_id can be 0.
* gtk/gtktreeselection.c (gtk_tree_selection_real_select_node):
Only redraw one the node being selected.
* gtk/gtktreeprivate.h: Add _gtk_tree_view_queue_draw_node.
Wed Dec 26 23:41:41 2001 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_rows_reordered): ensure
we are unprelighted before reordering
* gtk/gtktreemodel.c (gtk_tree_row_ref_reordered_callback): we
need to break out of the for loop, not return
* gtk/gtktreemodelsort.c: more fixage and cleanups. It seems to
be pretty stable now, though it still needs some more code
cleanups.