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)