2008-11-30 Christian Dywan <christian@imendio.com>
Bug 559622 – GdkDevice test segfaults
* gdk/x11/gdkdisplay-x11.c (gdk_display_x11_dispose):
* gdk/x11/gdkinput.c (gdk_device_class_init), (gdk_device_dispose):
Free and reset device in dispose. Patch by Michael Natterer and myself.
svn path=/trunk/; revision=21834
2008-09-29 Matthias Clasen <mclasen@redhat.com>
Bug 107000 – Add signals to GdkKeymap for monitoring caps_lock, etc.
* gdk/gdk.symbols:
* gdk/gdkkeys.[ch]: Add a new GdkKeymap::state-changed signal, and
a gdk_keymap_get_caps_lock_state function.
* gdk/x11/gdkkeys-x11.c: Implement it here. For now, only emit
state-changed when caps lock lockedness changes.
* gdk/x11/gdkdisplay-x11.c: Also select for modifier lock status
changes in the XkbSelectEventDetails call.
svn path=/trunk/; revision=21545
2008-09-26 Matthias Clasen <mclasen@redhat.com>
Bug 552956 – Should check composite extension version
* gdk/x11/gdkdisplay-x11.c: Check that the version of the
composite extension is at least 0.4.
Patch by Owen Taylor
svn path=/trunk/; revision=21530
* gdk/x11/gdkinput.c: Add a finalize function for device objects,
and call XCloseDevice there.
* gdk/x11/gdkinput-x11.c:
* gdk/x11/gdkdisplay-x11.c: Move freeing of device objects to
the finalize function.
Patch by Caolan McNamara
svn path=/trunk/; revision=21529
2008-01-15 Michael Natterer <mitch@imendio.com>
* gdk/gdkdisplay.h
* gdk/gdkdrawable.h
* gdk/gdkevents.h
* gdk/gdkpango.h
* gdk/gdkregion.h
* gdk/gdkrgb.h
* gdk/gdkwindow.h: made more struct pointer and array parameters
const. GDK should now be constified as far as possible without
breaking source compatibility. Includes some minor cleanup like
indentation and s/nfoo/n_foo/ (bug #508544).
* gdk/gdkdisplay.c
* gdk/gdkdraw.c
* gdk/gdkevents.c
* gdk/gdkpango.c
* gdk/gdkregion-generic.c
* gdk/gdkrgb.c
* gdk/directfb/gdkdisplay-directfb.c
* gdk/directfb/gdkwindow-directfb.c
* gdk/quartz/gdkdisplay-quartz.c
* gdk/quartz/gdkwindow-quartz.c
* gdk/win32/gdkdisplay-win32.c
* gdk/win32/gdkwindow-win32.c
* gdk/x11/gdkdisplay-x11.c
* gdk/x11/gdkwindow-x11.c: changed accordingly.
svn path=/trunk/; revision=19372
Thu Dec 13 13:14:50 2007 Søren Sandmann <sandmann@redhat.com>
* Add RandR 1.2 support
- New monitors_changed signal - New API to get width/height of
monitors, and the name of the plug
svn path=/trunk/; revision=19173
Fri Jun 22 00:34:34 2007 Tim Janik <timj@gtk.org>
* gdk/x11/gdkdisplay-x11.c (gdk_x11_display_get_xdisplay): applied
patch from Mark Tiefenbruck to add missing return_if_fail, #449862.
svn path=/trunk/; revision=18215
* gdk/x11/gdkdisplay-x11.c
(gdk_x11_display_broadcast_startup_message): New method to
marshall and send a Startup Notification message. (from #415070)
(gdk_notify_startup_complete_with_id): Use that
svn path=/trunk/; revision=17710
2007-03-13 Emmanuele Bassi <ebassi@gnome.org>
Apply patch by Vytautas Liuolia for changing the startup
notification id on a window in the X11 backend. (#347375)
* gdk/gdk.h:
* gdk/gdkx.h:
* gdk/x11/gdkdisplay-x11.c: Add gdk_notify_startup_complete_wit_id()
and gdk_x11_display_get_startup_notification_id().
* gdk/gdkwindow.h:
* gdk/x11/gdkwindow-x11.c: Add gdk_window_set_startup_id().
* gtk/gtkwindow.h:
* gtk/gtkwindow.c: Add gtk_window_set_startup_id(), used to
change the startup notification id.
(gtk_window_class_init), (gtk_window_init),
(gtk_window_set_property): Add write-only "startup-id" property
to GtkWindow.
(gtk_window_realize): Set the startup notification id
on a GtkWindow if it's valid.
(gtk_window_map): If we have another valid startup notification
id then finish the notification process.
svn path=/trunk/; revision=17508
2007-01-03 Matthias Clasen <mclasen@redhat.com>
* gtk/*.c:
* gdk/x11/*.c: Apply a patch by Chris Wilson to
avoid spurious valgrind warnings from XSendEvent()
calls. (#392532)
svn path=/trunk/; revision=17044
2006-09-25 Michael Natterer <mitch@imendio.com>
* gdk/x11/gdkdisplay-x11.c (gdk_display_x11_finalize): free
display->input_windows with g_free(), not g_object_unref()
(#357566, Tommi Komulainen).
Tue Apr 25 10:25:28 2006 Søren Sandmann <sandmann@redhat.com>
* tests/testgtk.c (create_alpha_window): Create 'composited' label.
* tests/testgtk.c (on_composited_changed): New function, change
the label to say whether the screen is composited or not.
* gtk/gtkwindow.c (gtk_window_on_composited_changed): When
composited status change, invalidate the window and propagate the signal;.
* gtk/gtkwindow.c (gtk_window_map): Set the appropriate type hint
if reset_type_hint is TRUE.
* gtk/gtkwindow.c (gtk_window_set_type_hint): If hint is one of
the old hints, store a shadow copy in the public window->type_hint
bitfield, otherwise set this field to normal. Set the private
field to the type hint.
* gtk/gtkwindow.c (gtk_window_init): Initialize priv->type_hint.
* gtk/gtkwindow.c (struct _GtkWindowPrivate): New field
"reset_type_hint" indicating whether the type hint needs to be
reset. New field type_hint containing a GdkWindowTypeHint.
* gtk/gtkwidget.c (propagate_composited_changed): New function to
propagate changes in composited status.
(gtk_widget_class_init): Add composited_changed signal.
* gtk/gtkwidget.h (struct _GtkWidgetClass): New signal composited-changed.
* gtk/gtkwidget.c (gtk_widget_is_composited): New function.
* gtk/gtktooltips.c (gtk_tooltips_draw_tips): Set transient for.
* gtk/gtktooltips.c (gtk_tooltips_force_window): Set the type hint
* gtk/gtkmenuitem.c (gtk_menu_item_position_menu): Compute whether
the item belongs to a menubar. Set the type_hint appropriately
depending on the outcome.
* gtk/gtkmenu.c (gtk_menu_position): Set the default type hint here.
* gtk/gtkmenu.c (gtk_menu_attach_to_widget): connect to hierarchy
changed on the attach widget.
* gtk/gtkmenu.c (attach_widget_hierarchy_changed): New function to
set the transient_for property for menus.
* gtk/gtkdnd.c (set_icon_stock_pixbuf): Set the appropriate type hint.
* gtk/gtkcombo.c (gtk_combo_popup_list): Make the popup window
transient for the toplevel.
* gtk/gtkcombobox.c (gtk_combo_box_set_popup_widget): Set
transient-for, for the popup window.
* gdk/x11/gdkwindow-x11.c (gdk_window_get_type_hint): Support for
new window types.
* gdk/x11/gdkwindow-x11.c (gdk_window_set_type_hint): Add support
for new window types.
* gdk/x11/gdkscreen-x11.c (_gdk_x11_screen_process_owner_change):
New function called whenever the compositing manager comes and goes.
* gdk/x11/gdkscreen-x11.c (gdk_screen_is_composited): New function.
* gdk/x11/gdkscreen-x11.c
(_gdk_x11_screen_request_cm_notification, make_cm_atom,
check_is_composited): New functions
* gdk/x11/gdkevents-x11.c (gdk_event_translate): Call
_gdk_x11_screen_process_owner_change when an
XFixesSelectionNotifyEvent is received.
* gdk/x11/gdkdisplay-x11.c (gdk_display_open): Call
_gdk_x11_screen_request_cm_notification() on all screens.
* gdk/quartz/gdkscreen-quartz.c (gdk_screen_is_composited): Dummy
implementation.
* gdk/gdkscreen.c (gdk_screen_class_init): New signal,
'composited-changed'.
* gdk/gdkwindow.h: Add new EWMH window types.
* gdk/win32/gdkscreen-win32.c (gdk_screen_is_composited)
2006-02-19 Matthias Clasen <mclasen@redhat.com>
Support input shapes: (#331070)
* gdk/gdk.symbols:
* gdk/gdkdisplay.h:
* gdk/gdkwindow.h:
* gdk/x11/gdkdisplay-x11.c (gdk_display_supports_shapes)
(gdk_display_supports_input_shapes): Functions to determine
if a display supports shaped windows or input shapes.
* gdk/x11/gdkwindow-x11.c (gdk_window_input_shape_combine_region):
(gdk_window_input_shape_combine_mask):
(gdk_window_set_child_input_shapes):
(gdk_window_merge_child_input_shapes): Input shape versions
of the window shape API.
* gtk/gtk.symbols:
* gtk/gtkwidget.h:
* gtk/gtkwidget.c (gtk_widget_input_shape_combine_mask):
New function to set an input shape on a widget.
2005-11-16 Michael Natterer <mitch@imendio.com>
* gdk/x11/gdkevents-x11.c (_gdk_events_uninit): new internal
function which destroys the display's event source. Also removes
the source from the global display_sources list and unrefs it.
* gdk/x11/gdkprivate-x11.h: declare the function.
* gdk/x11/gdkdisplay-x11.c (gdk_display_x11_dispose): call it
instead of half-destroying the source here.
2005-11-15 Michael Natterer <mitch@imendio.com>
* gdk/x11/gdkdisplay-x11.c (gdk_display_x11_finalize): destroy
display->xid_ht as late as possible (right before XCloseDisplay)
because it still needs to be around when the display's screens are
finalized. (#85715)
2005-11-10 Michael Natterer <mitch@imendio.com>
Applied patch from maemo-gtk that addresses many issues wrt
display migration and display closing (bug #85715).
* gdk/gdkdisplay.c (gdk_display_dispose): don't just set the
default display to NULL when it's closed. Instead set the most
recently opened display as new default (if one exists).
* gdk/gdkpango.c (on_renderer_display_closed): fixed signature
of this callback.
* gdk/gdkscreen.c (gdk_screen_dispose): check if the GCs still
exist before unrefing them.
* gdk/gdkwindow.c (_gdk_window_destroy_hierarchy): if the screen
is closed, allow destruction of the root window.
* gdk/x11/gdkdisplay-x11.c: moved some stuff from finalize() to
dispose(), free stuff that was leaked before.
* gdk/x11/gdkevents-x11.c (_gdk_x11_events_uninit_screen): check if
the xsettings_client still exists before destroying it.
* gdk/x11/gdkkeys-x11.c: added finalization and free the allocated
X resources.
* gdk/x11/gdkpixmap-x11.c: moved stuff from finalize() to new
dispose() implementation.
* gdk/x11/gdkscreen-x11.c: moved stuff from finalize() to
dispose() and check if it still exists before unrefing it. Set
their pointers to NULL/None *after* upchaining in dispose(),
because X11 implementations of members of the parent class still
need them for their own destruction.
* gdk/x11/gdkvisual-x11.c: removed finalize() implementation which
was g_error()ing when finalizing a visual.
* gtk/gtkclipboard.c (gtk_clipboard_finalize): don't use
get_clipboard_widget() because it would create the widget if it
doesn't exist. Use g_object_get_data() directly instead.
* gtk/gtktextdisplay.c (on_renderer_display_closed): fixed signature
of this callback.
2005-06-27 Matthias Clasen <mclasen@redhat.com>
* modules/input/gtkimcontextxim.c (gtk_im_context_xim_finalize):
Avoid a segfault. (#309054)
* gdk/x11/gdkdisplay-x11.h (struct _GdkDisplayX11): Add
fields for grab timestamps.
* gdk/x11/gdkmain-x11.c (gdk_pointer_grab, gdk_keyboard_grab):
Store grab timestamps when grabbing.
* gdk/x11/gdkdisplay-x11.c (gdk_display_keyboard_ungrab)
(gdk_display_pointer_ungrab): Don't unset the grab_window
if the timestamps indicate that the ungrab will fails.
2005-03-15 Owen Taylor <otaylor@redhat.com>
* gdk/gdkdrawable.h gdk/gdkdraw.c gdk/gdkpixmap.c gdk/gdkwindow.c
gdk/x11/gdkdrawable-x11.c gdk/x11/gdkpixmap-x11.c gdk/x11/gdkwindow-x11.c
gdk/gdkinternals.h: Switch set_cairo_target() virtual function to
ref_cairo_surface()
* gdk/gdkdrawable.h gdk/gdkdraw.h: Switch set_cairo_target() virtual
function to create_cairo_context()
* gdk/gdkwindow.c: Clear double buffer pixmaps with Cairo.
* gdk/x11/gdkwindow-x11.c: Keep all components in GdkWindowObject.bg_color,
not just the pixel.
* tests/testcairo.c: Update for create_cairo_context()
* gdk/gdkdraw.c (gdk_draw_trapezoids, gdk_draw_glyphs[_transformed]):
Reimplement in terms of Cairo, bypass the vtable entries.
* gdk/x11/gdkdrawable-x11.[ch] gdk/x11/gdkdisplay-x11.[ch]
gdk/x11/gdkgc-x11.c gdk/x11/gdkpango-x11.c
gdk/x11/gdkprivate-x11.h gdk/x11/Makefile.am: Remove
implementation of draw_trapezoids / draw_glyphs[_transformed].
* gdk/gdkpango.c: Switch GdkPangoRenderer to use Cairo
* gdk/gdkpango.c gdk/x11/gdkpango-x11.c: Move
gdk_pango_context_get_for_screen() into the backend independent code.
* gdk/x11/gdkdrawable-x11.[ch]: Remove Xft use, use RENDER directly
for drawing images.
* gdk/gdkdrawable.h gdk/x11/gdkdrawable-x11.c: Remove
gdk_draw_rectangle_alpha_libgtk_only.
* gdk/gdkpixbuf.h gdk/gdkpixbuf-render.c: Add
gdk_pixbuf_set_as_cairo_source()
* gdk/gdk.symbols: Update
* gtk/gtkcolorsel.c gtk/gtkhsv.c gtk/gtkiconview.c gtk/gtkruler.[ch]
gtk/gtk[hv]ruler.c: Convert to Cairo rendering.
* gtk/gtkstyle.c (gtk_default_draw_check, gtk_default_draw_focus,
gtk_default_draw_option): Switch to Cairo. Simplify the checkbutton,
radio button style for now to get something more scalable.
* gtk/gtksettings.c: #if 0 out the code to use PangoXft for hinting/
antialiasing/dpi settings.
2005-03-15 Matthias Clasen <mclasen@redhat.com>
Make PLT-reduction work with gcc4, and don't include
everything in gdkalias.h:
* gdk/gdk.symbols: Group symbols by header and source file.
* gdk/makegdkalias.pl: Protect definitions by the same
preprocessor symbols used to guard the headers. Move
the alias declarations to a separate file which is
produced when calling makegdkalias.pl -def
* gdk/Makefile.am (gdkaliasdef.c): Add a rule to generate this
file.
* gdk/*.c, gdk/x11/*.c: Include gdkalias.h after the other
headers, include gdkaliasdef.c at the bottom.
2005-01-19 Matthias Clasen <mclasen@redhat.com>
* gdk/gdk.symbols:
* gdk/x11/gdkx.h:
* gdk/x11/gdkdisplay-x11.c (gdk_x11_display_get_user_time):
Add a function to obtain the last user interaction
time. (#163119, Elijah Newren)
2005-01-18 Matthias Clasen <mclasen@redhat.com>
Avoid X errors when running against servers which
implement XRender < 0.4. (#164427, Albert Chin)
* gdk/x11/gdkprivate-x11.h:
* gdk/x11/gdkdrawable-x11.c (_gdk_x11_have_render_with_trapezoids):
New function to check for trapezoid support in XRender.
(gdk_x11_draw_trapezoids, _gdk_x11_drawable_draw_xtrapezoids):
Use it here.
* gdk/x11/gdkdisplay-x11.h (struct _GdkDisplayX11): Add a
separate have_render_with_trapezoids field.
* gdk/x11/gdkdisplay-x11.c (gdk_display_open): Initialize it.
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.
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
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()
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.
2004-05-18 Matthias Clasen <mclasen@redhat.com>
* configure.in: Check for XFIXES extension.
* gdk/x11/gdkdisplay-x11.h (struct _GdkDisplayX11): Add
a gboolean have_xfixes member.
* gdk/x11/gdkdisplay-x11.c (gdk_display_open): Register
XFIXES events and set have_xfixes.
* gdk/gdkevents.h (GdkEventType): Add GDK_OWNER_CHANGE.
(GdkEventOwnerChange): New event struct for owner change events.
(GdkOwnerChange): New enum for the reason field of GdkEventOwnerChange.
* gdk/x11/gdkevents-x11.c (gdk_event_translate): Translate
XFixesSelectionNotify events into GdkEventOwnerChange events.
* gdk/gdkdisplay.h:
* gdk/x11/gdkdisplay-x11.c (gdk_display_supports_selection_notification):
(gdk_display_request_selection_notification): New api
to support selection ownership notification.
* gtk/gtkclipboard.h:
* gtk/gtkclipboard.c (_gtk_clipboard_handle_event): New private
api to handle owner change events.
(clipboard_peek): Refactored out the body of
gtk_clipboard_get_for_display() for use in _gtk_clipboard_handle_event().
* gtk/gtkmain.c (gtk_main_do_event): Handle GDK_OWNER_CHANGE events
by calling _gtk_clipboard_handle_event().
Sun Apr 18 16:15:15 2004 Soeren Sandmann <sandmann@daimi.au.dk>
Support for _NET_WM_USER_TIME (bug 115650). Patch by Elijah
Newren.
* gdk/x11/gdkwindow-x11.[ch]: Add new internal function
_gdk_x11_set_user_time() to set the _NET_WM_USER_TIME property.
* gdk/x11/gdkdisplay-x11.h (struct _GdkDisplayX11): Add user_time field
* gdk/x11/gdkdisplay-x11.c: Add _NET_WM_USER_TIME to list of
precached atoms.
* gdk/x11/gdkinput-x11.c, gdk/x11/gdkevents-x11.c: Set the
property on user interaction.
Mon Feb 2 19:04:17 2004 Soeren Sandmann <sandmann@daimi.au.dk>
* gdk/x11/gdkwindow-x11.c: Assume gravity works. (Anything else
we have to take our chances with).
(Bug 97510)
Wed Dec 10 00:06:24 2003 Matthias Clasen <maclas@gmx.de>
Improve the GDK API for dealing with group leaders (#119375):
* gdk/gdkwindow.h:
* gdk/x11/gdkwindow-x11.c (gdk_window_get_group): New function to
get the group leader of a toplevel window as a GdkWindow.
* gdk/gdkdisplay.h:
* gdk/x11/gdkdisplay-x11.c (gdk_display_get_default_group): New
function to get the default group leader as a GdkWindow.
* gdk/x11/gdkdisplay-x11.h (struct _GdkDisplayX11): Add a field for
the GdkWindow of the default group leader.
* gdk/x11/gdkdisplay-x11.c (gdk_display_open): Construct the GdkWindow
for the default group leader.
Sat Aug 2 12:53:16 2003 Owen Taylor <otaylor@redhat.com>
* configure.in: Requires glib-2.3.0, pango-1.2.0.
* configure.in: Require Xft version 2,
remove code for handling older versions of pango and Xft.
Many miscellaneous improvements to X checks
* acinclude.m4: Add GTK_ADD_LIB() macro for adding
a library to a variable, avoiding dups.
* gdk/x11/gdkfont-x11.c (gdk_font_from_description_for_display):
Always load "fixed"
* gdk/x11/gdk*-x11.[ch]: Remove support for Xft1 and
for pangox.
Tue Jul 8 20:11:04 2003 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkevents-x11.c (get_real_window)
gdk/x11/gdkinput-x11.c (_gdk_input_common_init)
gdk/x11/gdkimage-x11.c (_gdk_windowing_image_init)
gdk/x11/gdkprivate-x11.h (_gdk_windowing_image_init)
Don't assume that all events start with XEventAny - Xkb events
don't! (#105745). So, only do that for core events, and for
non-core events, add a system for registering event types
that start with XEventAny.
* gdk/x11/gdkevents-x11.c (gdk_event_translate):
Check to see if the result of gdk_window_lookup_for_display()
is actually a window.
Sat Jul 5 00:49:32 2003 Owen Taylor <otaylor@redhat.com>
* gtk/gtkdnd.c (gtk_drag_begin): Move the grabs up
earlier, so we don't get a big pile of uncompressed
motion events before the grab takes effect.
* gtk/gtkdnd.c (gtk_drag_update_icon): Call
gdk_window_process_all_updates() so that the area
we are dragging over gets a change to redraw.
* gtk/gtkdnd.c (_gtk_drag_dest_handle_event): Use
gdk_window_get_position(), not gdk_window_get_origin().
* gdk/x11/gdkwindow-x11.[ch] (gdk_window_have_shape_ext)
gdkdisplay-x11.h: use XShapeQueryExtension to
avoid duplicate XQueryExtension when we actually
use it. Remove unnecessary caching in GdkDisplayX11.
Fri Jul 4 15:57:52 2003 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkevents-x11.c (gdk_wm_protocols_filter):
Use asynchronously _gdk_x11_set_input_focus_safe
to avoid having to trap errors and XSync().
* gdk/x11/gdkwindow-x11.c (gdk_window_focus): Use
_gdk_x11_set_input_focus_safe() here as well.
* gdk/x11/gdkevents-x11.c (gdk_check_wm_state_changed):
Rework handling of property notifies on _NET_WM_STATE
so that we ignore _NET_WM_DESKTOP notifies unless we
really care.
* gdk/x11/gdkimage-x11.c (gdk_image_check_xshm): Use
XShmQueryExtension() rather than XQueryExtension() to
avoid extra rountrip.
* gdk/x11/gdkwindow-x11.c (_gdk_windowing_window_init):
Remove unused call to XGetWindowAttributes()
* gdk/x11/gdkdisplay-x11.c (gdk_display_open): Remove
unused call to XGetKeyboardControl().
* gdk/x11/gdkdisplay-x11.c gdk/gdk.def (gdk_display_flush):
Add (#99571)
* gdk/win32/gdkevents-win32.c gdk/linux-fb/gdkevents-fb.c
No-op implementations of gdk_display_flush().
* gdk/gdkwindow.c (gdk_window_process_all_updates): Use
gdk_display_flush() rather than gdk_flush() to avoid
XSync().
* gdk/x11/gdkwindow-x11.c (update_wm_hints)
gdk/x11/gdkwindow-x11.h: Centralize all handling of WM_HINTS here
so that we don't have to get the property back from the server.
* gdk/x11/gdkwindow-x11.c (show_window_internal): Store
the serial of when we map a toplevel to allow optimizing
out notifies on _NET_WM_STATE/_NET_WM_DESKTOP.
* gdk/x11/gdkevents-x11.c (gdk_event_translate): Don't
XTranslateCoordinates() for override-redirect windows.
Fri Jul 4 15:59:27 2003 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkwindow-x11.c (gdk_window_set_group): Remove comment
about setting window group after the window is mapped from docs
- nothing the ICCCM forbids that.
* gdk/x11/gdkcursor-x11.c (gdk_display_get_maximal_cursor_size):
Fix g_return_val_if_fail() in void return function.
* configure.in: Fix misplaced comma that was resulting
in XShm always being disabled.
Tue May 20 15:09:29 2003 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkdnd-x11.c gdk/x11/gdkwindow-x11.c: Comprehensively
zero all unused parts of client messages (Mainly Motif DND
and EWMH). Also, fix a couple places where we were putting
contents into Motif DND messages that didn't belong.
(#113361, EWMH problem reported by Lubos Lunak)
* gtk/gtkselection.c (_gtk_selection_request): Handle the
case where the property type for the multiple atoms is
ATOM_PAIR by doing the conversions ourselve. This is
needed for Xt inter-operation.
Mon Apr 21 15:07:29 2003 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkdisplay-x11.c (gdk_display_keyboard/pointer_ungrab):
Calling XFlush() after ungrabbing, to avoid problems if
the app subsequently blocks on a long-running operation.
(#106520, reported by Rajkumar Siva)
Fri Apr 18 16:31:49 2003 Owen Taylor <otaylor@redhat.com>
* configure.in gdk/x11/gdkdisplay-x11.c modules/input/Makefile.am:
Check for XAddConnectionWatch()/X11R6, and if found, disable XIM and
use of XAddConnectionWatch. Remove --enable-xim config option.
Should fix building on X11R6 (#110523, Albert Chin
Fri Apr 18 15:56:46 2003 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkdisplay-x11.[ch] gdk/x11/gdkdrawable-x11.[ch]:
Patch from Morten Welinder to catch Sun servers with a
broken implementation of the RENDER extension. (#108309)
Fri Apr 18 14:15:09 2003 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkdisplay-x11.c (gdk_display_open):
* gdk/x11/gdkevents-x11.c (gdk_event_translate): You
don't get a XkbMapNotify event if you get a XkbNewKeyboardNotify
event, so select for both. (#108406, Egmont Koblinger)
Mon Apr 7 19:43:15 2003 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkdisplay-x11.c (gdk_x11_display_ungrab): Flush
after ungrabbing the server.
* gdk/x11/gdkimage-x11.c: Remove some no-longer-needed
calls to XFlush().
* gdk/x11/gdkwindow-x11.c (_gdk_windowing_window_at_pointer):
Use gdk_x11_display_grab/ungrab.
Wed Jan 8 18:43:03 2003 Manish Singh <yosh@gimp.org>
* gdk/x11/gdkdisplay-x11.c: #include <stdlib.h> for putenv,
<string.h> for strlen.
* gdk/x11/gdkscreen-x11.c: #include <stdlib.h> for getenv,
<string.h> for strrchr.
* tests/testgtk.c (create_saved_position): "x" and "y" properties
for widgets no longer exist, use gtk_window_move instead.
* test/testtextbuffer.c (check_get_set_text): cast strlen to
int for g_error.
Fri Nov 8 17:08:54 2002 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkwindow-x11.c (gdk_window_new): Use
g_get_application_name() instead of g_get_prgname()
as the default window title when set.
* gdk/x11/gdkwindow-x11.c gdk/x11/gdkdisplay-x11.[ch]:x
Set g_get_application_name() as the title for the
leader window the first time we create a window
pointing to it.
* tests/testgtk.c (main): Call g_set_application_name();
* configure.in (GDK_PIXBUF_VERSION): Require GLib-2.1.3
Sat Nov 2 00:22:33 2002 Owen Taylor <otaylor@redhat.com>
Add startup notification hooks - mostly based on patch
by Havoc Pennington in #96772.
* gdk/gdk.h gdk/x11/gdkdisplay-x11.c
gdk/{win32,linux-fb}/gdkmain-*.c: (gdk_notify_startup_complete):
new function that indicates an application has finished starting
up.
* gdk/x11/gdkmain-x11.c gdk/x11/gdkdisplay-x11.c
(_gdk_windowing_set_default_display): store value of
DESKTOP_STARTUP_ID on the default screen, and clear it from the
environment.
* gdk/x11/gdkdisplay-x11.c:
Set _NET_STARTUP_ID hint on display's group leader window.
* gtk/gtkwindow.c (gtk_window_set_auto_startup_notification):
function to toggle whether we automatically broadcast that we've
started up, after mapping the first toplevel window.
(gtk_window_map): call gdk_screen_notify_startup_complete() by
default, unless enabled by above.
* gtk/gtkmain.c gtk/gtkcombo.c gtk/gtktoolbar.c:
Couple of warning fixes.
Mon Sep 30 15:31:57 2002 Owen Taylor <otaylor@redhat.com>
* gdk/gdkdisplay.c gdk/x11/gdkdisplay-x11.c
gdk/gdkinternals.h: Set the client ID on all
displays. (#85713)
* gdk/gdkdisplay.h gkd/gdkinternals.h
gdk/{linux-fb,win32,x11}/gdkmain-{fb,win32,x11}.c
Privatize gdk_display_set_sm_client_id().
Thu Aug 1 19:09:39 2002 Owen Taylor <otaylor@redhat.com>
* demos/gtk-demo/changedisplay.c: New demo for
window migration between different displays and screens.
* gtk/gtkrc.c gtkstyle.[ch]: Add
_gtk_style_init_for_settings(), so that gtkrc.c
can initialize the styles it creates for the
right display.
* gdk/gdkdisplaymanager.c (gdk_screen_get_default)
* gtk/gtksettings.c (gtk_settings_get_default)
* gtk/gtkstyle.c (gtk_style_init): Handle absence of
a default screen.
* gdk/x11/gdkmain-x11.c (_gdk_windowing_set_default_display):
Handle display == NULL.x
* gdk/gdkdisplay.c (gdk_display_dispose): Free the
event queue.
* gdk/x11/gdkevents-x11.c gdk/x11/gdkdisplay-x11.c:
Remove the event source when closing a display.
* gdk/gdkdisplay.[ch]: Add a ::closed signal, dispose()
isn't convenient enough by itself.
* gdk/x11/gdkevents-x11.c (gdk_xsettings_watch_cb):
Create foreign windows for watch windows if there isn't
an existing window, instead of installing a global filter.
* gdk/x11/gdkscreen-x11.c gdk/x11/gdkprivate-x11.h
gdk/x11/gdkevents-x11.c (_gdk_x11_events_uninit_screen):
Clean up the xsettings_client when we are done with
it.
* gdk/x11/gdkevents-x11.c (_gdk_events_init): Remove
excess call to _gdk_x11_events_init_screen()
Thu Aug 1 11:26:03 2002 Owen Taylor <otaylor@redhat.com>
* gdk/gdkdisplay.[ch] gdk/gdkscreen.[ch] gdkinternals.h:
Start implementing display/screen closing scheme; keep a
flag for whether displays and screens are closed,
call g_object_run_dispose(). Remove public gdk_screen_close().
* gdk/x11/gdkdisplay-x11.c gdk/x11/gdkscreen-x11.c: Add
dispose() methods; move appropriate parts of the finalize
there.
* gdk/x11/gdkcolor-x11.c gdk/x11/gdkimage-x11.c
gdk/x11/gdkmain-x11.c gdk/x11/gdkpango-x11.c
gdk/x11/gdkpixmap-x11.c gdk/x11/gdkproperty-x11.c
gdk/x11/gdkselection-x11.c gdk/x11/gdkwindow-x11.c:
Start of making everything correctly ignore operations
when a display has been closed.
* gdk/x11/gdkwindow-x11.c (gdk_window_get_decorations):
Handle decorations == NULL.
* gdk/x11/gdkcolor-x11.c (gdk_colormap_remove):
Remove unnecessary hash table creation.
* gdk/x11/gdkinput.c gdk/x11/gdkinput-x11.c gdk/win32/gdkinput.c
Fix up gdk_device_get_history - handle events, n_events == NULL,
etc.
* gdk/x11/gdkproperty-x11.c (gdk_property_get):
Handle failure better.
* gdk/x11/gdkselection-x11.c (gdk_selection_property_get):
Handle failure better, handle data == NULL, move docs
here, remove an excess round trip by asking for
all selection data at once.
* gdk/gdkselection.c gdk/win32/{x11,win32}/gdkselection-{x11,win32}.c
gdk/{x11,win32}/gdkmain-{x11,win32}.c gdk/gdkdisplay.c: Move
gdk_text_property_to_text_list(), gdk_string_to_compound_text(),
gdk_display_set_sm_client_id() to display-independent part of GDK.
* gdk/Makefile.am (gdk_c_sources): Sort gdkdisplay/screen.[ch]
into the right place.
Thu Jun 20 16:49:00 2002 Owen Taylor <otaylor@redhat.com>
* gdk/gdkdisplaymanager.[ch] gdk/gdk.[ch] gdk/gdkdisplay.c
gdk/gdkinternals.h gdk/x11/gdkdisplay-x11.c
gdk/win32/gdkdisplay-win32.c: Add a singleton object that
we can use to get notification when displays
appear / disappear or the default display changes.
gdk_set_default_display() => gdk_display_manager_set_default_display()
gdk_list_displays() => gdk_display_manager_list_displays().
(#85696)
* gdk/Makefile.am gdk/gdkmarshalers.list: Add marshaler
generation.
* gdk/gdkintl.h: Add this.
* gtk/gtkmain.c: Add gtk_parse_args() that initializes
GTK+ without opening a display.
* gtk/gtkmain.c: Set things up so if a module
exports gtk_module_init() and gtk_module_display_init(),
then we treat it as multihead aware, otherwise,
we only initialize it after the default display is set.
Thu Jun 20 15:53:21 2002 Owen Taylor <otaylor@redhat.com>
Patch from Erwann Chenede.
* gdk/x11/gdkdisplay-x11.[ch] gdk/x11/gdkprivate-x11.h:
Introduce a yes/no/unknown GdkTristate, use it
in a couple of places. (#79962)
* gdk/x11/gdkwindow-x11.c gdk/x11/gdkdisplay-x11.h: Make
gravity_works per-display. (#79963)
Wed Jun 5 18:34:47 2002 Owen Taylor <otaylor@redhat.com>
Changes multihead reorganizing code for win32 support,
mostly from a patch by Hans Breuer.
* gdk/gdkcolor.c gdk/x11/gdkcolor-x11.c gdk/gdkcursor.c
gdk/x11/gdkcursor-x11.c gdk/gdkevents.c gdk/x11/gdkevents-x11.c
gdk/gdkfont.c gdk/x11/gdkfont-x11.c gdk/gdkkeys.c
gdk/x11/gdkkeys-x11.c gdk/gdkimage.c gdk/x11/gdkimage-x11.c
gdk/gdkscreen.c gdk/x11/gdkmain-x11.c
gdk/gdkdisplay.c gdk/gdkevents-x11.c gdk/gdkpango.c
gdk/x11/gdkpango-x11.c gdk/gdkselection.c
gdk/x11/gdkselection-x11.c gdk/gdkwindow.c
gdk/x11/gdkwindow-x11.c gdk/gdkvisual.c gdk/x11/gdkvisual-x11.c:
Move port-independent singlehead wrapper functions into
port-independent part of GDK. (#80009)
* gdk/win32/gdkcolor-win32.c gdk/win32/gdkcursor-win32.c
gdk/win32/gdkevents-win32.c gdk/win32/gdkfont-win32.c
gdk/win32/gdkimage-win32.c gdk/win32/gdkkeys-win32.c
gdk/win32/gdkmain-win32.c gdk/win32/gdkproperty-win32.c
gdk/win32/gdkselection-win32.c gdk/win32/gkwindow-win32.c:
Turn singlehead functions into "multihead" functions that ignore
their GdkDisplay or GdkScreen arguments.
* gdk/win32/gdkdrawable-win32.c gdk/win32/gdkevents-win32.c
gdk/win32/gdkinput-win32.c gdk/win32/gdkprivate-win32.h:
Misc multihead-compatibility changes.
* gtk/gtk.def gdk/gdk.def: Update for multihead functions.
* gdk/gdkcolormap.h gdk/gdkvisual.h gdk/x11/gdkcolormap-x11.c
gdk/x11/gdkvisual-x11.c: Remove the screen fields
from the public parts of the colormap/visual structures, add accessors
instead.
* gdk/gdkpixbuf-render.c gdk/gdkpixmap.c gdk/gdkrgb.c
gdk/x11/gdkcolormap-x11.c gdk/x11/gdkimage-x11.c
gdk/x11/gdkimage-x11.c gdk/x11/gdkprivate-x11.h gtk/gtkgc.c
gtk/gtkstyle.c gtk/gtkwidget.c: Use accessors to get the screen
for colormaps, visuals; move the fields into the private
structures for the x11 backend.
* gdk/gdkdisplay.[ch] gdk/x11/gdkdisplay-x11.[ch]
gdk/gdkscreen.[ch] gdk/x11/gdkscreen-x11.c:
Remove virtualization of screen and display functions.
(#79990, patch from Erwann Chenede)
* gdk/win32/gdkdisplay-x11.c gdk/win32/gdkscreen-win32.c
gdk/win32/{Makefile.am, makefile.msc, makefile.mingw}:
New files containing stub implementations of Display,
Screen functions.
* gdk/x11/gdkscreen-x11.[ch] gdk/x11/gdkdisplay-x11.[ch]
gdk/x11/gdkx.h: Clean up function exports and what
headers they are in. (#79954)
* gdk/x11/gdkx.h: Fix macro that was referring to a non-existant
screen->screen_num. (In the patch for #79972, Erwann Chenede)
* gdk/gdkscreen.c gdk/gdkwindow.c gdk/x11/gdkinternals.h
gdk/x11/gdkscreen-x11.c: Fix gdk_screen_get_window_at_pointer()
to use window hooks. (#79972, patch partly from Erwann Chenede)
* gdk/x11/gdkdisplay-x11.c gdk/x11/gdkevents-x11.c: Fix
some warnings.
Mon May 20 15:02:21 2002 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkdisplay-x11.c: Patch from HideToshi Tajima
to handle Xlib internal connections. (#76681)
2002-05-03 Erwann Chenede - <erwann.chenede@sun.com>
* gdk/x11/gdkvisual-x11.c:
* gdk/x11/gdkwindow-x11.c:
* gdk/x11/gdkdisplay-x11.[hc] (gdk_open_display) :
Rationalized the screen initialization process,
changed the GdkDisplayX11 screen list to an array.
* gdk/x11/gdkscreen-x11.[hc] (_gdk_x11_screen_new) :
Moved the xinerama init functions to gdkdisplay-x11.c to
this file, create a single function to fully initialize
a GdkScreen. #79981
Tue Apr 30 14:23:43 2002 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkdisplay-x11.c (gdk_open_display): fix
problem with finalizing non-initialized fully display
when failing to open display.
* tests/testxinerama.c: Xinerama test case from
multihead branch, with some cleanups. (Start even
if there is only one monitor, for one.)
Tue Apr 30 12:28:27 2002 Owen Taylor <otaylor@redhat.com>
* gdk/gdkdisplay.c gdk/gdkpango.c gdk/gdkpixmap.c
gdk/x11/gdkdisplay-x11.c gdk/x11/gdkevents-x11.c
gdk/x11/gdkpixmap-x11.c gdk/x11/gdkx.h: Doc fixes.
Tue Apr 30 11:37:09 2002 Owen Taylor <otaylor@redhat.com>
* modules/input/gtkimcontextxim.c: Make multihead-safe;
use a different IM context per display.
* configure.in acconfig.h: Add Xinerama checks from
multihead branch, changing HAS_XINERAMA => HAVE_XINERAMA.
* gdk/x11/gdkdisplay-x11.c: HAS_XINERAMA => HAVE_XINERAMA.
2002-04-29 Alex Larsson <alexl@redhat.com>
* gdk/gdkpango.c (gdk_draw_layout_line_with_colors):
Use tmp also if foreground is set.
Thu Apr 25 16:51:40 2002 Owen Taylor <otaylor@redhat.com>
Start of integration of Erwann Chenede's multihead work
from the gtk-multihead branch.
* gdk/gdkdisplay.[ch] gdk/gdkscreen.[ch]
gdk/x11/gdkdisplay-x11.[ch] gdk/x11/gdkscreen-x11.[ch]
New classes representing a set of screens with attached
input devices and a single contiguous area, respectively.
* gdk/gdk.[ch] gdk/gdkinternals.h gdk/x11/gdkmain-x11.c:
gdk/x11/gdkprivate-x11.h: Make the initialization interface
simple _gdk_windowing_init() and do the rest in
gdk_open_display() calls.
* gdk/gdk.[ch]: Add gdk_parse_args() which can be used
to do the display-independent part of initialization
instead of gdk_init_[check].
* gdk/gdkcursor.h gdk/gdkfont.h gdk/gdkkeys.h gdk/gdkpixmap.h
gdk/gdkproperty.h gdk/gdkselection.h gdk/gdkwindow.h:
Add multihead variants (_for_display(), for_screen()) of functions
getting information specific to a particular screen screen or
display.
* gdk/gdkscreen.[ch]: Add gdk_screen__* variants of functions
like gdk_rgb_get_colormap() that used to get/list global
objects.
* gdk/x11/gdkx.h: Add functions for converting GdkScreen
and GdkDisplay into the X equivalents.
* gdk/x11/gdkwindow-x11.c: Removed gdk_window_xid_at_coords()
not in the headers and unused.
* configure.in gdk/x11/{gxid.c,gxid_lib.[ch],gdkinput-gxi.c}:
Remove gxid support ... has not been tested for a long time...
"xfree" support is more portable to non XFree86.
* gdk/**.h: Add a GDK_MULTIHEAD_SAFE define that can be
used to turn off functions that are inherently non-multihead
safe.
* gdk/**.c: add GDK_NOTE(multihead, ...) calls when functions
are used in non-multihead-safe ways.
* gdk/*.c gdk/x11/*.c: Changes to make the internals of GDK
multihead safe.