Tue Nov 23 19:37:34 2004 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkgc-x11.c (_gdk_x11_gc_flush): A little bit
of microoptimization of repeated GDK_GC_XDISPLAY()/XGC().
2004-11-29 Matthias Clasen <mclasen@redhat.com>
Determine the direction of XKB groups from their content,
not by looking for hardcoded keymap names. (#116626, patch by
Behdad Esfahbod, based on an earlier patch by Ilya Konstantinov)
* gdk/x11/gdkkeys-x11.c (struct _GdkKeymapX11): Cache directions
for XKB groups.
(get_direction): Determine direction of group by looking at
directions of keysyms.
(update_direction): Maintain the cache of group directions.
(gdk_keymap_get_direction): Use update_direction().
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-12 Matthias Clasen <mclasen@redhat.com>
Make GDK+ compile with X11R5 (#148032)
* gdk/x11/xsettings-client.c (xsettings_client_new):
* gdk/x11/gdkproperty-x11.c (_gdk_x11_precache_atoms): Only
use XInternAtoms if it is available.
* gdk/x11/gdkasync.c: Include XIproto.h if necessary.
* configure.in: Check for XInternAtoms and X headers needed for
xReply.
2004-11-09 Matthias Clasen <mclasen@redhat.com>
* gdk/x11/gdkwindow-x11.c (gdk_window_get_geometry): Add
a hint about using gdk_drawable_get_size() instead.
2004-11-03 Matthias Clasen <mclasen@redhat.com>
* gdk/x11/gdkdnd-x11.c (gdk_drag_motion): Handle the
case that the protocol version in the context is not
set yet. (#157123, James Henstridge)
2004-10-18 Matthias Clasen <mclasen@redhat.com>
Fix#155658, Sebastian Bacher:
* gdk/x11/gdkwindow-x11.h (struct _GdkToplevelX11): Add a new
is_leader flag.
* gdk/x11/gdkwindow-x11.c (update_wm_hints): Set wm hints on
leader windows even if they are withdrawn.
(gdk_window_set_group): Mark the new leader window as such. We
never remove the flag again, but that should a) be vanishingly
rare and b) not a problem, since the flag just turns off an
optimization.
* gdk/x11/gdkdisplay-x11.c (gdk_display_open): Mark the default
leader window as such.
2004-10-05 Matthias Clasen <mclasen@redhat.com>
* gdk/x11/gdkwindow-x11.c (gdk_window_foreign_new_for_display):
Return a new reference to an existing GdkWindow if one already
exists. (#151378, Gustavo Carneiro)
Sun Sep 5 17:14:16 2004 Matthias Clasen <maclas@gmx.de>
* gtk/gtkmain.c:
* gdk/gdk.c:
* gdk/x11/gdkmain-x11.c:
* gdk/win32/gdkmain-win32.c: Add descriptions for the
commandline arguments. The actual descriptions are mostly
taken from libbonoboui, so translators should be able to
copy existing translations from there.
Sat Sep 4 16:51:00 2004 Søren Sandmann <sandmann@redhat.com>
* gdk/x11/gdkevents-x11.c (gdk_event_prepare): Revert accidental
change from Aug 02 that removed a flush of the X connection from
gdk_event_prepare() causing applications to get stuck. (#151732,
Richard Hoelscher).
2004-09-01 Matthias Clasen <mclasen@redhat.com>
Make it possible to specify additional modules to load
via a setting. (#117236, Alex Graveley)
* gtk/gtkmodules.h:
* gtk/gtkmodules.c: New files which contain the module
handling code which was previously in gtkmain.[hc].
Additionally, the code now looks for the gtk-modules
setting, which can specify additional modules to load.
* gtk/gtkmain.c:
* gtk/gtkmain.h: Remove all the module handling code.
* gtk/gtkdebug.h: Add a debug flag for modules.
* gtk/gtk.h: Include gtkmodules.h
* gtk/Makefile.am (gtk_public_h_sources): Add gtkmodules.h
(gtk_c_sources): Add gtkmodules.c
* gtk/gtksettings.c: Add the gtk-modules setting.
* gdk/x11/gdkevents-x11.c: Add the Gtk/Modules XSetting.
2004-08-23 Matthias Clasen <mclasen@redhat.com>
* gdk/x11/gdkwindow-x11.h (struct _GdkToplevelX11): Add a
user_time field.
* gdk/x11/gdkwindow-x11.c (gdk_x11_window_set_user_time): Update
toplevel->user_time.
(show_window_internal): Update the user time when re-mapping a
toplevel window. (#150502, Elijah Newren)
Mon Aug 9 15:41:17 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)
* gdk/Makefile.am: Add rules to generate gdk.def and
gdkalias.h from gdk.symbols, and make make check check
the abi with abicheck.sh.
* gdk/gdk.symbols: New file. Definition of the GDK ABI.
The file can be processed by cpp to filter out certain
subsets of symbols.
* gdk/abicheck.sh: New file. Script to check the actually
symbols exported from libgdk-x11.2.0.so against the symbols
found in gdk.symbols.
* gdk/makegdkalias.pl: New file. Perl script to generate the
header containing the alias definitions for internally used
exported symbols from a list of symbols.
* gdk/*.c, gdk/x11/*.c: Include gdkalias.h
2004-08-06 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkdnd.c (gtk_drag_dest_set, gtk_drag_source_set): Really
fix the initialization of the target list.
Support XDND v5. (#10220, Owen Taylor)
* gdk/x11/gdkdnd-x11.c: Record the XDND version and whether the
drop was successful in the GdkDragContextPrivateX11 struct.
(xdnd_finished_filter): Store the success status of the drop
for an XDND version 5 interaction. For other versions, always
assume the drop was successful.
(xdnd_check_dest): Return the protocol version.
(_gdk_drag_get_protocol_for_display): Return the protocol version.
(gdk_drag_find_window_for_screen): Store the used protocol version
in the GdkDragContext.
(xdnd_send_enter): Send the used protocol version from the context,
instead of hardwiring 3.
(xdnd_enter_filter): Accept protocol versions >= 3 and store the
used protocol version in the context.
* gdk/gdkdnd.h:
* gdk/x11/gdkdnd-x11.c (gdk_drag_drop_succeeded): New function
to find out whether a drop was successful.
Thu Aug 5 19:58:08 2004 Soeren Sandmann <sandmann@daimi.au.dk>
* gtk/gtkplug.c (gtk_plug_realize): Call
gdk_window_enable_synchronized_configure()
* gdk/x11/gdkwindow-x11.c (gdk_window_configure_finished): Make
noop if gdk_window_enable_synchronized_configure() has not been
called.
Mon Aug 2 21:52:45 2004 Soeren Sandmann <sandmann@daimi.au.dk>
* gdk/x11/gdkwindow-x11.c (ensure_sync_counter): New
function. Make sure the sync counter is recreated when a window is
reparented to become a toplevel. (#148358)
Sat Jul 31 00:42:08 2004 Matthias Clasen <maclas@gmx.de>
* gdk/x11/gdkwindow-x11.c (gdk_window_set_keep_below):
* gdk/x11/gdkwindow-x11.c (gdk_window_set_keep_above): Don't
set both states at once. (#148789, Matthew Garret)
2004-07-28 Anders Carlsson <andersca@gnome.org>
* gdk/x11/gdkdrawable-x11.c (gdk_draw_rectangle_alpha_libgtk_only):
Cast to 32-bit integers when premultiplying, suggested by Keith Packard.
Tue Jul 20 23:11:23 2004 Matthias Clasen <maclas@gmx.de>
* gdk/x11/gdkevents-x11.c: Hook up gtk-menu-bar-accel to
an XSetting, Gtk/MenuBarAccel. (#120859, Scott James Remnant)
Tue Jul 13 00:40:29 2004 Soeren Sandmann <sandmann@daimi.au.dk>
* gdk/gdkwindow.c (gdk_window_process_updates_internal): Do an
empty begin_paint_region()/end_paint() for windows without
EXPOSURE_MASK.
* gdk/x11/gdkwindow-x11.c (_gdk_x11_window_tmp_unset_bg,
_gdk_x11_window_tmp_reset_bg): Remove checks for EXPOSURE_MASK.
Mon Jul 12 01:56:26 2004 Matthias Clasen <maclas@gmx.de>
* gdk/x11/gdkwindow-x11.c (gdk_toplevel_x11_free_contents):
Include the update_counter check in the HAVE_XSYNC condition,
since update_counter isn't present in the !HAVE_XSYNC case.
Sun Jul 11 15:24:03 2004 Soeren Sandmann <sandmann@daimi.au.dk>
Bug 143330, support update counter spec.
* configure.in: Add check for the Sync extension
* gdk/gdkwindow.h: gdk_window_enable_synchronized_configure() and
gdk_window_configure_finished()
* gtk/gtkwindow.c (gtk_window_move_resize): Call gdk_window_finish_configure().
* gtk/gtkwindow.c (gtk_window_realize): Automatically enable
synchronized configures.
* gdk/x11/gdkwindow-x11.h (struct _GdkToplevelX11): Store current
and pending counter values.
* gdk/x11/gdkwindow-x11.c (gdk_window_configure_finished): New function.
* gdk/x11/gdkwindow-x11.c
(gdk_window_enable_synchronized_configure): New function.
* gdk/x11/gdkwindow-x11.c (gdk_toplevel_x11_free_contents):
Delete update counter.
* gdk/x11/gdkwindow-x11.c (set_wm_protocols): Advertise
_NET_WM_SYNC_REQUEST when Sync is available
* gdk/x11/gdkevents-x11.c (gdk_wm_protocols_filter): Handle
_NET_WM_SYNC_REQUEST messages
* gdk/x11/gdkevents-x11.c (gdk_event_translate): Save counter
value for use by gdk_window_configure_finished() when receiving
ConfigureNotifies.
* gdk/x11/gdkdisplay-x11.h (struct _GdkDisplayX11): Add use_sync flag
* gdk/x11/gdkdisplay-x11.c (gdk_display_open): Check if the XSync
extension is available
* gdk/x11/gdkdisplay-x11.c: Add _NET_WM_SYNC_REQUEST and
_NET_WM_SYNC_REQUEST_COUNTER to list of supported atoms.
* gdk/linux-fb/gdkwindow-fb.c, gdk/win32/gdkwindow-win32.c: Add
stubs for enable_synchronized_configure() and configure_finished()
Sat Jul 10 01:55:29 2004 Soeren Sandmann <sandmann@daimi.au.dk>
* gdk/x11/gdkwindow-x11.c (_gdk_x11_window_tmp_{re|un}set_bg):
Insert checks for root window. The root window is never mapped.
Sat Jul 10 00:37:45 2004 Soeren Sandmann <sandmann@daimi.au.dk>
Bug 113310.
* gdk/x11/gdkwindow-x11.c (_gdk_x11_window_tmp_{un|re}set_bg):
New functions that can do a recursive unset/reset bg.
* gdk/x11/gdkgeometry-x11.c: Remove
gdk_window_tmp_{un|re}set_bg().
* gdk/x11/gdkwindow-x11.c (pre_unmap, post_unmap): New functions
called before and after unmapping a window. They unset the
background of all other windows to prevent flicker from the X
server repainting the background. post_unmap() also invalidates
the parent of the unmapped window to draw it without roundtrips.
* gdk/x11/gdkwindow-x11.c (show_window_internal): Unset
background of newly mapped windows and all desendants to prevent
flicker.
Fri Jul 9 15:33:55 2004 Manish Singh <yosh@gimp.org>
* gdk/gdkevents.c: have a dummy case GDK_OWNER_CHANGE in switch
statements to avoid gcc warnings about not all enum values handled.
* gdk/x11/gdkdisplay-x11.c (gdk_display_open): ignore should live in
#ifdef HAVE_XFIXES.