2004-12-08 Matthias Clasen <mclasen@redhat.com>
Fix#111031, reported by Padraig O'Briain:
* gtk/gtktextlayout.h:
* gtk/gtktextlayout.c (gtk_text_layout_get_iter_at_position):
Add a variant of gtk_text_layout_get_iter_at_pixel() which
returns the character at the position, not the closest
cursor position.
* gtk/gtktextview.h:
* gtk/gtktextview.c (gtk_text_view_get_iter_at_position):
Add a variant of gtk_text_view_get_iter_at_location() which
returns the character at the position, not the closest
cursor position.
2004-12-08 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkaccelmap.c (internal_change_entry): Remove all
entries for the same key, not just the first one. (#159498,
Christian Persch)
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-12-07 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkiconview.c (gtk_icon_view_rows_reordered): Make this
work, no need to invert the array.
* gtk/gtkliststore.c (gtk_list_store_sort_iter_changed): Emit
rows_reordered if the row has been moved. (#160063)
2004-12-07 Matthias Clasen <mclasen@redhat.com>
* gtk/gtktreeviewcolumn.c (gtk_tree_view_column_button_event):
Don't mess up the column header state if the button release
event is missed. (#159640)
2004-12-03 Tor Lillqvist <tml@iki.fi>
* gdk-pixbuf/Makefile.am (gdk_pixbuf.def)
* gdk/Makefile.am (gdk.def)
* gtk/Makefile.am (gtk.def): Work around gcc misfeature. At least
gcc 3.3.1 doesn't like to do -E on files that it thinks aren't
source files. Use redirection and '-' instead.
2004-12-02 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkfilechooserdefault.c (gtk_file_chooser_default_should_respond): Reinstate the previous behavior for clicking Ok after
activating a bookmark or path bar button in folder
modes. (#160044, Dennis Cranston)
2004-12-02 Federico Mena Quintero <federico@ximian.com>
Merged from gtk-2-4:
Fix#159656:
* gtk/gtkfilechooserdefault.c (PendingOp): New enumeration for the
pending operation to perform when finishing loading a folder.
(struct _GtkFileChooserDefault): New fields 'pending_op' and
'pending_select_path'.
(pending_op_queue): New utility function.
(pending_op_process): New utility function.
(gtk_file_chooser_default_select_path): Don't select the path
immediately; delay it until the folder is finished loading.
(browse_files_model_finished_loading_cb): Process the pending
operation.
(browse_files_select_first_row): New utility function.
(gtk_file_chooser_default_initial_focus): Use
browse_files_select_first_row().
(gtk_file_chooser_default_should_respond): Queue an operation to
select the first row once we load the child folder.
(up_folder_handler): Queue an operation to select the current
folder once we load the parent folder.
(gtk_file_chooser_default_finalize): Free the pending_select_path.
2004-12-01 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkiconview.c (gtk_icon_view_row_changed): Handle the
fact the the changed row may also be moved. (#159387, Olivier
Andrieu)
2004-12-01 Michael Natterer <mitch@gimp.org>
* gtk/gtkuimanager.[ch]: added virtual functions
GtkUIManager::get_widget() and ::get_action(). Moved the code from
gtk_ui_manager_get_widget() and get_action() to the default
implementations. Fixes bug #160096.
(gtk_ui_manager_get_toplevels): added missing precondition check
for GTK_IS_UI_MANAGER(self).
Tue Nov 30 17:53:37 2004 Søren Sandmann <sandmann@redhat.com>
* gtk/gtksequence.c (node_compare): Assign an arbitrary, but
consistent, order to nodes that the user function compares as
equal. Better fix for bug #157670 and a better way to make sorting
stable.
2004-11-30 Hans Breuer <hans@breuer.org>
* gdk/win32/gdkpixmap-win32.c : remove the disputable memset at
the end of gdk_pixmap_new() - on X11 the bits are not initialized
either - fixes bug #145107
* gtk/gtkfilesystemwin32.c : add an idle handler to emit "volumes-changed"
when drives are plugged in or removed. Fixes bug #137815
2004-11-30 Matthias Clasen <mclasen@redhat.com>
* gtk/gtktreesortable.c (gtk_tree_sortable_get_sort_column_id): Update
the documentation to specify a more useful behaviour, which can be
implemented with the multiple special values we have now. (#159984,
Nicholas Rahn)
* gtk/gtktreemodelsort.c (gtk_tree_model_sort_get_sort_column_id):
* gtk/gtktreestore.c (gtk_tree_store_get_sort_column_id):
* gtk/gtkliststore.c (gtk_list_store_get_sort_column_id): Update the
implementations.
Tue Nov 30 16:25:29 2004 Owen Taylor <otaylor@redhat.com>
* gtk/gtktextdisplay.c (render_para): Don't paint in the
trailing end of a wrapped line when the selection
starts after the line. (#159984, Matthias Clasen)
* gtk/gtktextdisplay.c (gtk_text_layout_draw): pass in byte_count + 1
for selection_end index when the selection end is past the end of the
line so that render_para() can distinguish it from selection-end
*at* the end of the line. Fixes newlines not being selected.
2004-11-29 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkmenushell.c (gtk_menu_shell_button_release): Don't
do the popup-on-click handling for menubars. (#159931,
Søren Sandmann)
* gtk/gtkmenuitem.c (gtk_real_menu_item_select): Don't
handle popup delay if the submenu is already mapped.
2004-11-29 Federico Mena Quintero <federico@ximian.com>
Merged from gtk-2-4:
* gtk/gtkfilechooserdefault.c (trap_activate_cb): Don't handle
Enter if we are in SELECT_FOLDER or CREATE_FOLDER actions. This
lets us navigate thei file system more easily.
(gtk_file_chooser_default_should_respond): If we are in
SELECT_FOLDER or CREATE_FOLDER modes, return TRUE if something is
selected.
Mon Nov 29 17:51:51 2004 Søren Sandmann <sandmann@redhat.com>
* gtk/gtksequence.c (_gtk_sequence_sort_changed): If the item is
already in the right place, don't move it. Bug #157670.
* gtk/gtksequence.c (already_in_place): New function
Mon Nov 29 17:28:53 2004 Søren Sandmann <sandmann@redhat.com>
* gtk/gtksequence.c (_gtk_sequence_sort): Take nodes in reverse
order to make sure sort is stable.
2004-11-29 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkcombobox.c (cell_view_is_sensitive): Don't call
gtk_cell_view_set_cell_data() from here.
* gtk/gtk.symbols: Remove gtk_cell_view_set_cell_data()
* gtk/gtkcellview.c (gtk_cell_view_get_cell_renderers): Call
gtk_cell_view_set_cell_data() from here.
(gtk_cell_view_set_cell_data): Make static.
* gtk/gtkcombobox.c (gtk_combo_box_menu_popup): Make menu mode
work better when resizing the combo box.
2004-11-29 Matthias Clasen <mclasen@redhat.com>
* gtk/Makefile.am (gtkalias.h):
* gdk/Makefile.am (gdkalias.h): Use the perl found by
configure. (#149826, Morten Welinder)
2004-11-28 Matthias Clasen <mclasen@redhat.com>
* gtk/gtktextview.c (gtk_text_view_move_iter_by_lines): Return
a boolean indicating whether we could do the requested move.
(gtk_text_view_move_cursor_internal): For GTK_MOVEMENT_DISPLAY_LINES,
move to the beginning/end of the line if we're on the first/last
line. (#155891, Paolo Borelli)
2004-11-28 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkaction.c (closure_accel_activate): Don't claim to have
handled the accelerator if the action is insensitive. (#151541,
Jody Goldberg)
2004-11-27 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkcolorsel.c (key_press): Implement keynav for the color
picker (only on X11 currently, since GDK doesn't support pointer
warping). Space and Return pick a color, Esc cancels the picking,
arrow keys move the pointer by single pixels, Alt-arrow combinations
move the pointer by 20 pixels. (#135385, Frances Keenan)
2004-11-26 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkiconview.c (gtk_icon_view_set_model): Check column types on the
new model, and check them all. (#159389, Olivier Andrieu)
2004-11-24 Matthias Clasen <mclasen@redhat.com>
* xdgmimeparent.c (_xdg_mime_parent_read_from_file):
Initialize the parent field of the newly allocate list
entry. (#159330, Alex Larsson)
2004-11-24 Matthias Clasen <mclasen@redhat.com>
Open submenus on click. (#128968, Martin Jeppesen)
* gtk/gtkmenushell.c (gtk_menu_shell_button_release): Don't
activate items with submenus after the timeout, just select
them.
* gtk/gtkmenuitem.c (gtk_real_menu_item_select): Make
submenus popup immediately on click, regardless of popup
delay.
2004-11-22 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkmenuitem.c (gtk_menu_item_paint): Make the size of
the arrow depend only on the font size, not on the child
allocation. (#131345, Morten Welinder)
2004-11-21 Sven Neumann <sven@gimp.org>
* gtk/gtkwidget.c (gtk_widget_create_pango_context): removed call
to gdk_pango_context_set_colormap() which isn't needed any longer.
Sat Nov 20 15:13:51 2004 Owen Taylor <otaylor@redhat.com>
* gdk/gdkpango.[ch]: Add GdkPangoRenderer, a subclass of
PangoRenderer targeting GDK drawables. Use to implement the old
gdk_draw_layout() and friends.
* gdk/gdkdraw.c gdk/gdkdrawable.h gdk/gdkwindow.c gdk/gdkpixmap.c:
Add gdk_draw_glyphs_transformed() gdk_draw_trapezoids() and
the corresponding members of GdkDrawableClass. Add a fallback
implementation of gdk_draw_trapezoids() in terms of pixbufs.
* gdk/gdkwindowing.h gdk/x11/gdkg-x11.h: Add
_gdk_windowing_gc_get_foreground() to enable the fallback
trapezoid implementation.
* gdk/x11/gdkdrawable-x11.c gdk/x11/gdkdisplay-x11.h: Implement
draw_glyph_transformed, draw_trapezoids.
* gdk/x11/gdkdrawable-x11.[ch]: Add
_gdk_x11_drawable_draw_xtrapezoids, _gdk_x11_drawable_draw_xft_glyphs
for use of GdkX11Renderer.
* gdk/x11/gdkgc-x11.c gdk/x11/gdkprivate-x11.h: Implement
GDK_TILED, GDK_STIPPLED, GDK_OPAQUE_STIPPLED in the RENDER codepath.
* gdk/gdkpango-x11.c: Add GdkX11Renderer... a subclass of
PangoXftRenderer that does tiles/stipples and fallback rendering
of trapezoids without the RENDER extension.
* gdk/gdkpango-x11.c gdk/x11/gdkscreen-x11.[ch] _gdk_x11_renderer_get:
Add _gdk_x11_renderer_get() to get a singleton GdkX11Renderer
for the screen.
* gdk/x11/gdkdrawable-x11.c (get_impl_drawable): Fix a None/NULL
confusion.
* gtk/gtklabel.[ch] gtk/gtk.symbols: Add gtk_label_set/get_angle(),
and an ::angle property.
* gtk/gtklabel.c: Remove #if 0'd dead code gtk_label_paint_word().
* gtk/gtktextdisplay.c: Switch to using a GtkTextRenderer subclass
of GdkPangoRenderer for drawing.
* gtk/gtktextlayout.[ch] gtk/gtktextdisplay.c: Switch to using
gtk_attr_shape_new_with_data() to store backreferences to
embedded pixmaps and widgets. Leave line_display->shaped_objects
around for backwords compatibility.
* gdk/gdkpango.[ch] (gdk_pango_context_set_colormap): Describe
as deprecated, remove implementation.
* gtk/gtkwidget.c (gtk_widget_create_pango_context): Remove
call to gdk_pango_context_set_colormap.
* demos/gtk-demo/Makefile.am demos/gtk-demo/rotated_text.c: Add
a demo showing drawing rotated text.
* tests/testgtk.c: Add a rotated-label test, and also a rotated
drawing test (differs from demos/gtk-demo/rotated_text by also
using a tile)
2004-11-20 Matthias Clasen <mclasen@redhat.com>
* gtk/gtk.symbols:
* gtk/gtkdialog.h:
* gtk/gtkdialog.c (gtk_dialog_set_alternative_button_order_from_array):
Provide a non-varargs variant of gtk_dialog_set_alternative_button_order()
for language bindings. (#158798, John Finlay)
2004-11-20 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkdialog.h:
* gtk/gtkdialog.c (gtk_dialog_set_alternative_button_order_from_array):
Provide a non-varargs variant of gtk_dialog_set_alternative_button_order()
for language bindings. (#158798, John Finlay)
2004-11-20 Federico Mena Quintero <federico@ximian.com>
Merged from gtk-2-4:
* gtk/gtkfilechooserdefault.c (list_icon_data_func): Set an empty
icon if we are on the editable row: if we don't set the cell
renderer at all, it will reuse the last thing it painted.
2004-11-19 Federico Mena Quintero <federico@ximian.com>
Merged from gtk-2-4:
Fix#158475:
* gtk/gtkpathbar.c (make_directory_button): Make the button a drag
source.
(button_drag_data_get_cb): New callback to let us drag the
button's path as a text/uri-list.
2004-11-19 Federico Mena Quintero <federico@ximian.com>
Merged from gtk-2-4:
Fix#141077. Based on a patch by Christian Neumair <chris@gnome-de.org>:
* gtk/gtkfilechooserdefault.c (new_folder_button_clicked):
Desensitize the "new folder" button.
(edited_idle_cb): Sensitize the button back.
2004-11-19 Federico Mena Quintero <federico@ximian.com>
Merged from gtk-2-4:
Fix#158477:
* gtk/gtkfilechooserdefault.c (struct _GtkFileChooserDefault):
Remove the "save_extra_align" and "browse_extra_align" fields; use
a single "extra_align" field.
(save_widgets_create): Don't create the save_extra_align.
(browse_widgets_create): Don't create the browse_extra_align.
(gtk_file_chooser_default_constructor): Create the extra_align
here.
(set_extra_widget): Add the extra widget to the alignment here,
and remove the old one if necessary.
(update_appearance): No need to frob the extra widget's alignments
anymore.
(gtk_file_chooser_default_set_property): No need to call
update_appearance() anymore when we set the extra widget.
2004-11-19 Federico Mena Quintero <federico@ximian.com>
Merged from gtk-2-4:
* gtk/gtkfilechooserdefault.c
(gtk_file_chooser_default_initial_focus): Don't set the cursor if
we are still loading.
2004-11-18 Federico Mena Quintero <federico@ximian.com>
Merged from gtk-2-4:
Fixes#155744:
Try to load the whole file system model within a specified time.
* gtk/gtkfilechooserdefault.c (set_list_model): Don't create and
set the sort model here. Instead, set up a timer in which we'll
try to load the file system model.
(load_set_model): Create and set the sort model here.
(load_setup_timer): New function to set up a timer and switch to
the LOAD_LOADING state.
(load_remove_timer): New function to unset the timer and switch to
the LOAD_FINISHED state.
(browse_files_model_finished_loading_cb): Remove the timer if
needed and set the file system and sort model; switch to the
LOAD_FINISHED state.
(gtk_file_chooser_default_finalize): Remove the load timer.
(gtk_file_chooser_default_init): Start in the LOAD_FINISHED state.
2004-11-17 Davyd Madeley <davyd@madeley.id.au>
* gtk/gtkfilechooserdefault.c: Allow backspace to move up the
FileChooser tree to make it consistent with Nautilus and others.
2004-11-16 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkcellrenderertext.c (get_layout): Don't use the foreground
color for selected cells, Don't use the background color
in unfocused selected cells. Also avoid creating two PangoLayouts
per render call. (#154615, #154611, Billy Biggs)
2004-11-15 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkselection.c: Reduce the clipboard timeout from 300
seconds to 30 seconds. (#155428, Billy Biggs)
Mon Nov 15 19:02:07 2004 Manish Singh <yosh@gimp.org>
* gdk/abicheck.sh
* gtk/abicheck.sh: don't hardcode lengths for cut, instead split on
the third field.
2004-11-11 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkfilefilter.c: Don't try to use xdgmime on
Windows where we don't build it. (#157944, J. Ali Harlow)
2004-11-11 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkstatusbar.c (gtk_statusbar_size_allocate): Also
reserve space for the resize grip if the grip_window is not
realized yet. (#158010, Christian Persch)
(gtk_statusbar_button_press): Only start a resize if the
button press comes from the grip_window. (#158011, Christian Persch)
2004-11-11 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkuimanager.c (update_node): Remove two more places
where we were unconditionally setting "visible", causing
unnecessary notifications.
* gtk/gtkclipboard.c (gtk_clipboard_get_for_display):
(gtk_clipboard_get): Clarify the docs. (#156638, Torsten
Schoenfeld)
(gtk_clipboard_finalize): Warn if the clipboard is still in
its displays clipboard list.
2004-11-11 Matthias Clasen <mclasen@redhat.com>
Considerably speed up GtkUIManager, by changing the semantics
of the dirty flag. It is now propagated up the tree, and
update_node() doesn't descend into clean subtrees. (#143668,
Dave Neary, Michael Natterer, Sven Neumann, fix proposed
by Soeren Sandmann)
* gtk/gtkuimanager.c (node_prepend_ui_reference): Only prepend
a new node reference if the merge_id is different. Take a GNode,
so we can walk up the tree, adjust all callers.
(node_remove_ui_reference): Only mark a node dirty if the first
ui reference is removed. Take a GNode here as well for
consistency.
(update_node): Don't descend into clean subtrees.
(mark_node_dirty): New function to mark a node and its
predecessors dirty.
Thu Nov 11 11:34:32 2004 Jonathan Blandford <jrb@redhat.com>
* gtk/gtkfilechooserbutton.c (update_idler): return FALSE instead
of TRUE. This is just a quick fix to prevent the idle from
looping indefinitely.
2004-11-11 J. Ali Harlow <ali@juiblex.co.uk>
* gdk/Makefile.am:
* gdk-pixbuf/Makefile.am:
* gtk/Makefile.am (gtk.def): Use embedded tab rather than '\t'
escape sequence. (#157949)
2004-11-10 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkstatusbar.c (gtk_statusbar_size_allocate): Only
shorten the label if it actually overlaps the resize grip.
(gtk_statusbar_size_allocate): Handle extra children
by leaving room for the resize grip. (#157778, Christian Persch)
2004-11-10 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkstatusbar.c (gtk_statusbar_size_allocate): Only
shorten the label if it actually overlaps the resize grip.
2004-11-09 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkrange.c (gtk_range_real_change_value): Make
power a double.
(gtk_range_class_init): s/digits/decimal digits/ in doc
comment.
2004-11-09 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkaction.[hc]:
* gtk/gtkactiongroup.[hc]: Make return types G_CONST_RETURN
instead of const.
* gtk/gtk.symbols:
* gtk/gtkaction.h:
* gtk/gtkaction.c (gtk_action_get_accel_path): Add
a function to obtain the accel path of an action. (#148106,
Michael Natterer)
2004-11-09 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkstatusbar.c (gtk_statusbar_init): Raise the grip
window when appropriate.
(gtk_statusbar_init): Instead of cutting the text of, make
ellipsize the label.
(gtk_statusbar_size_allocate): Don't let the label extend
under the resize grip.
2004-11-09 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkcombobox.c (find_menu_by_path)
(gtk_combo_box_menu_fill_level, gtk_combo_box_menu_row_inserted):
Use a row reference, not a path, to associate separators
with their tree row.
2004-11-09 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkstyle.c (gtk_default_draw_resize_grip): Only
clear the triangle below the grip to the background,
not the full area.
2004-11-09 Matthias Clasen <mclasen@redhat.com>
* gtk/gtklabel.c (draw_insertion_cursor, gtk_label_expose):
Clip when drawing the cursor. This prevents bits of a
selectable label leaking out from underneath the resize
grip in a statusbar. (#73359)
2004-11-09 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkstatusbar.c: Apply a patch by Owen Taylor to
get reasonable allocations for the statusbar and its
children. (#73359)
2004-11-09 Matthias Clasen <mclasen@redhat.com>
Avoid resizing GtkStatusbar if the text of the label
changes (#90955, He Qiangqiang, fix proposed by
Owen Taylor, patch by Christian Persch)
* gtk/gtklabel.[hc]: Add a boolean single-line-mode property
which causes the label height not to depend on the actual
text, but only on the font.
* gtk/gtkstatusbar.c (gtk_statusbar_init): Turn on
single-line-mode for the label.
2004-11-08 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkfilefilter.c (gtk_file_filter_filter): Use
xdg_mime_mime_type_subclass() to match mime types. This
also gives use wildcard matching. (#143760, #141224,
Tommi Komulainen, David A Knight)