2005-06-15 Matthias Clasen <mclasen@redhat.com>
* gdk/x11/gdkwindow-x11.[hc]: Keep a reference to the
GdkCursor and add a private getter for it, so that we can
update the cursor when the cursor theme changes.
* gdk/gdk.symbols:
* gdk/x11/gdkx.h:
* gdk/x11/gdkcursor-x11.c (gdk_x11_display_set_cursor_theme):
New function to change the cursor theme.
2005-06-14 Federico Mena Quintero <federico@ximian.com>
Merged from gtk-2-6:
Fix#302087:
* gtk/gtkfilechooserdefault.c (list_selection_changed): Emit
"selection-changed" and do the normal housekeeping even if we are
in SAVE mode and there is nothing selected. We didn't emit that
signal if we were in SAVE mode and unselect_all() got called.
(gtk_file_chooser_default_unselect_all): Call
pending_select_paths_free() so that we cancel any asynchronous
selections.
(gtk_file_chooser_default_set_current_name): Likewise.
2005-06-14 Federico Mena Quintero <federico@ximian.com>
Merged from gtk-2-6:
Fixes#307640:
* gtk/gtkfilechooserdefault.c
(gtk_file_chooser_default_should_respond): Oops, I broke SAVE
mode. If the parent path is a folder, only create a subfolder if
we are in CREATE_FOLDER mode; if we are in SAVE mode, just return
and respond. Also, pick up the case where the user types
"dirname/" instead of "dirname".
(check_save_entry): Make the return type void. Add some return
parameters so that we can do more thorough checking.
(gtk_file_chooser_default_get_paths): If the file part is empty
and we are in SAVE mode, return an empty selection.
2005-06-15 Kristian Rietveld <kris@gtk.org>
Patch for #163214 (reported by Tommi Komulainen) and fixes some
other scrolling/validation related bugs along the why.
* gtk/gtktreeview.c (gtk_tree_view_size_request): run
do_validate_rows once and don't queue a size request there,
(gtk_tree_view_size_allocate): don't update vadj value without
reason, sync top_row/dy after the window sizes and adjustments
are in sync again,
(validate_visible_area): always update dy when scrolling,
manually set top_row here after changing the vadj (don't depend
on _adjustment_changed and top_row/dy sync to do this), since we
now always set top_row here correctly, we can always free
scroll_to_path at the end which avoids infinite expose loops,
(do_validate_rows): add queue_resize boolean, remove top_row/dy
sync here, we cannot do it safely at this place since the
window sizes and adjustments are out of sync,
(validate_rows), (validate_rows_handler): update call to
do_validate_rows().
2005-06-14 Matthias Clasen <mclasen@redhat.com>
* gdk/x11/gdkcursor-x11.c (gdk_cursor_new_from_name): Add a
stub for the no-Xcursor case. (noticed by Luis Villa)
2005-06-14 Matthias Clasen <mclasen@redhat.com>
Use named cursors for the DND cursors, the names are "dnd-none",
"dnd-copy", "dnd-link", "dnd-move" and "dnd-ask". Also use an RGBA
cursor instead of cursor+window when possible. This saves
roundtrips during the drag operation, and makes translucent icons
possible.
* gtk/gtkdndcursors.h: New file, containing inlined pixbufs
for the default dnd cursors.
* gtk/gtkdnd.c (struct _GtkDragSourceInfo): Store the cursors
used during the drag here, also store the icon pixbuf here.
* gtk/gtkdnd.c (drag_cursors): Store the cursor names here. Also
switch the default cursors from xbm to inlined pixbufs.
* gtk/gtkdnd.c (gtk_drag_get_cursor): This function now takes the
GtkDragSourceInfo as well, since it has to composite the
drag-specific cursors. The cursors combined from the image of
the themed cursor and the icon_pixbuf stored in the info.
* gtk/gtkdnd.c (gtk_drag_begin_internal): Don't set the default
icon if there is an icon_pixbuf, which will be composited into
the cursor later.
* gtk/gtkdnd.c (set_icon_stock_pixbuf): If appropriate, store
the pixbuf in the info struct for later compositing into the
cursor instead of creating an icon window.
* gtk/gtkdnd.c (gtk_drag_drop_finished): If we used an
RGBA cursor for the drag, and need to display the cancel
animation, construct the icon window here.
* gtk/gtkdnd.c (gtk_drag_source_info_destroy): Unref the
drag-specific cursors and the icon_pixbuf when done with
the drag.
2005-06-14 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkcolorsel.c (make_picker_cursor): Use a named cursor
with the name "color-picker", when available.
2005-06-14 Matthias Clasen <mclasen@redhat.com>
* gdk/gdk.symbols:
* gdk/gdkcursor.h:
* gdk/x11/gdkcursor-x11.c (gdk_cursor_get_image)
(gdk_cursor_new_from_name): New functions to construct named
cursors and to get the image used for a cursor.
2005-06-13 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkpathbar.[hc]: Rework the way in which rerooting of the
path bar is done, implementing the following principles:
(#137289, patch by Benjamin Otte)
1. Re-root only if $HOME is an ancestor of the current path.
2. When re-rooting, make sure the Left arrow appears in the path
bar, so that you can navigate up from $HOME to /. In that case,
make sure the Right arrow doesn't appear if the sub-hierarchy from
$HOME to the cwd fits in the window.
3. Make sure that hitting Alt-Up takes you always one folder up,
even when the path bar is re-rooted.
2005-06-13 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkfilechooserbutton.c (model_update_current_folder):
Free the data of the row before overwriting it. (#307490,
Kjartan Maraas)
2005-06-13 Matthias Clasen <mclasen@redhat.com>
Make invisible text work a bit better (#66194, patch by
Jeroen Zwartepoorte)
* gtk/gtk.symbols:
* gtk/gtktextiter.[hc]: Add function to move by
visible lines.
* gtk/gtktextview.c (gtk_text_view_move_cursor_internal):
Skip invisible text when moving by paragraphs.
* gtk/gtktextlayout.c (gtk_text_layout_move_iter_visually):
Skip invisible lines here too.