Owen Taylor [Sun, 21 Nov 2004 16:24:01 +0000 (16:24 +0000)]
Add GdkPangoRenderer, a subclass of PangoRenderer targeting GDK drawables.
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.[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)
Matthias Clasen [Sun, 21 Nov 2004 04:57:23 +0000 (04:57 +0000)]
Provide a non-varargs variant of gtk_dialog_set_alternative_button_order()
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)
Matthias Clasen [Sun, 21 Nov 2004 04:55:37 +0000 (04:55 +0000)]
Provide a non-varargs variant of gtk_dialog_set_alternative_button_order()
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 #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.
* gtk/gtkfilechooserbutton.c (gtk_file_chooser_button_set_property):
cast away the const for g_value_set_enum. This is after the g_warning,
so this is a hack to begin with.
* gtk/gtkfilechooserdefault.c (gtk_file_chooser_default_set_property):
add a cast to GTK_FILE_CHOOSER for impl here.
Matthias Clasen [Tue, 16 Nov 2004 05:19:21 +0000 (05:19 +0000)]
Don't use the foreground color for selected cells, Don't use the
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)
Matthias Clasen [Tue, 16 Nov 2004 02:51:19 +0000 (02:51 +0000)]
Be extra careful when locking and handle the case that the module may
2004-11-15 Matthias Clasen <mclasen@redhat.com>
* gdk-pixbuf-animation.c:
* gdk-pixbuf-loader.c:
* gdk-pixbuf-io.c: Be extra careful when locking and handle
the case that the module may initialize the thread system.
* gdk-pixbuf-io.[hc] (_gdk_pixbuf_lock): Return whether the
lock was actually taken.
Patch from Gavin Romig-Koch <gavin@redhat.com> to no longer reset the
Mon Nov 15 14:25:21 2004 Jonathan Blandford <jrb@redhat.com>
* gtk/gtktreeviewcolumn.c (_gtk_tree_view_column_cell_set_dirty):
Patch from Gavin Romig-Koch <gavin@redhat.com> to no longer reset
the resized_width when marking a column dirty.
Matthias Clasen [Fri, 12 Nov 2004 05:34:31 +0000 (05:34 +0000)]
Changes to make gdk-pixbuf threadsafe (#157310, #157306, Colin Walters):
2004-11-12 Matthias Clasen <mclasen@redhat.com>
Changes to make gdk-pixbuf threadsafe (#157310, #157306,
Colin Walters):
* gdk-pixbuf-io.h (enum GdkPixbufFormatFlags): Add
GDK_PIXBUF_FORMAT_THREADSAFE to indicate that an image loader
is threadsafe.
* gdk-pixbuf-io.c (get_file_formats, _gdk_pixbuf_load_module):
Use a lock to make initialization of global data structures
threadsafe.
* gdk-pixbuf-private.h:
* gdk-pixbuf-io.c (_gdk_pixbuf_lock, _gdk_pixbuf_unlock):
Auxiliary functions which use another lock to protect
threadunsafe image loaders.
* gdk-pixbuf-io.c (gdk_pixbuf_real_save):
(save_to_callback_with_tmp_file):
(gdk_pixbuf_real_save_to_callback):
(gdk_pixbuf_new_from_xpm_data):
(_gdk_pixbuf_generic_image_load):
* gdk-pixbuf-animation.c (gdk_pixbuf_animation_new_from_file):
* gdk-pixbuf-loader.c (gdk_pixbuf_loader_load_module):
(gdk_pixbuf_loader_close):
(gdk_pixbuf_loader_finalize):
Use _gdk_pixbuf_lock() and _gdk_pixbuf_unlock().
* io-ani.c, io-bmp.c, io-gif.c, io-ico.c:
* io-jpeg.c, io-pcx.c, io-png.c, io-pnm.c:
* io-ras.c, io-tga.c, io-wbmp.c, io-xbm.c:
* io-xpm.c: Mark as threadsafe.
* io-tiff.c: Remove pointless locking, mark as
threadunsafe.
Matthias Clasen [Fri, 12 Nov 2004 03:36:35 +0000 (03:36 +0000)]
Also reserve space for the resize grip if the grip_window is not realized
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)
Matthias Clasen [Thu, 11 Nov 2004 19:57:41 +0000 (19:57 +0000)]
Remove two more places where we were unconditionally setting "visible",
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.
Matthias Clasen [Thu, 11 Nov 2004 18:13:19 +0000 (18:13 +0000)]
Considerably speed up GtkUIManager, by changing the semantics of the dirty
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.
Tor Lillqvist [Wed, 10 Nov 2004 22:04:47 +0000 (22:04 +0000)]
Event timestamps don't have to be unique. As long as they are
2004-11-10 Tor Lillqvist <tml@iki.fi>
* gdk/win32/gdkevents-win32.c (_gdk_win32_get_next_tick):
Event timestamps don't have to be unique. As long as they are
nondecreasing we should be fine. Solves problems with for instance
long menus not staying up on first click. (#152035, Robert Ögren)
Matthias Clasen [Wed, 10 Nov 2004 16:33:33 +0000 (16:33 +0000)]
Only shorten the label if it actually overlaps the resize grip.
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)