* gdk/x11/gdkkeys-x11.c (_gdk_keymap_key_is_modifier): Protect
against XKB being stupid. Reported by Pedro Villavicencio.
svn path=/trunk/; revision=20413
2008-05-28 Michael Natterer <mitch@imendio.com>
* gdk/gdk.h: define __GDK_H_INSIDE__ around including all other
headers.
* gdk/gdkenumtypes.h.template
* gdk/gdk*.h: add single-include guards that #error out if
GTK_DISABLE_SINGLE_INCLUDES is defined and any of these files is
included individually. Also removed some redundant includes and
did some tiny trailing whitespace removal that's not worth to
commit separately.
* gdk/gdkprivate.h: include <gdk/gdk.h> instead of individual
files.
* gdk/win32/gdkwin32.h
* gdk/x11/gdkx.h: only include <gdk/gdkprivate.h> and remove all
other includes.
svn path=/trunk/; revision=20217
2008-05-25 Cody Russell <bratsche@gnome.org>
Bug 526635 - _gdk_window_get_toplevel handles FOREIGN windows
* gdk/x11/gdkwindow-x11.c (_gdk_window_get_toplevel): Check
!WINDOW_IS_TOPLEVEL instead of checking for GDK_WINDOW_CHILD,
so that we also take into account for foreign windows.
Report and patch by Nathaniel Smith.
svn path=/trunk/; revision=20166
2008-05-25 Cody Russell <bratsche@gnome.org>
Bug 525461 - Don't invalidate under an input-only child
* gdk/x11/gdkgeometry-x11.c (_gdk_window_move_resize_child):
Check that the window is not input-only before invalidating.
Report and patch by Owen Taylor.
svn path=/trunk/; revision=20165
2008-05-25 Cody Russell <bratsche@gnome.org>
Bug 524110 - Gdk should not assume reparenting WMs when retrieving
window frame extents
* gdk/x11/gdkwindow-x11.c (gdk_window_get_frame_extents):
Use _NET_FRAME_EXTENTS, if available. Patch by Danny Baumann.
svn path=/trunk/; revision=20164
2008-05-25 Cody Russell <bratsche@gnome.org>
Bug 522269 - Evince windows sometimes incorrectly unmaximized,
caused by missing flag initialization
* gdk/x11/gdkwindow-x11.c (set_initial_hints): Initialize
top-level private flags correctly. Patch by Danny Baumann.
svn path=/trunk/; revision=20163
2008-03-18 10:49:20 Tim Janik <timj@imendio.com>
* Applied pixmap redirection patch by Alexander Larsson with
various updates from:
Bug 318807 – Offscreen windows and window redirection.
Updates:
* updated docs to mention "Since 2.16".
* tests/testgtk.c: fixed snapshooting pixmap leak.
convert pixmap to pixbuf after snapshooting, to compensate for different
bit depths (occurs when snapshooting ARGB visuals and displaying the
pixmap in an RGB visual).
* gdk/gdkwindow.[hc]: made GdkWindowRedirect private.
* gdk/gdkwindow.c: removed damage idle handler, there's no aparent
need for it. enqueue damage notification as GDK_DAMAGE events
for each painting redirection at the start of the event queue.
consider windows with a redirection fully visible when invalidating,
and when updating from backing store. cleaned up stale variables.
* gdk/gdkevents.c: added _gdk_event_queue_prepend().
* gtk/gtkwidget.c: fixed coordinates for !NO_WINDOW widgets in
gtk_widget_get_snapshot; this fixes garbage snap offsets for gammacurve,
tree, drawingarea, text, handlebox, etc.
clip the redirected window hierarchy to window sizes, the visible
rectangles don't need to be taken into account here.
extended snapshooting docs to recommend gdk_pixbuf_get_from_drawable()
in case pixmap visuals could mismatch.
* gdk/x11/gdkwindow-x11.c: removed _gdk_windowing_window_get_visible_rect().
Base patch:
* tests/testgtk.c: add a "Snapshot" test to demonstrate snapshooting
of possibly obscured widgets into an offscreen pixmap.
* gtk/gtkwidget.[hc]: add GtkWidget::damage-event signal, add
gtk_widget_get_snapshot() to render a widget's contents to a GdkPixmap.
* gtk/gtkmain.c: dispatch GDK_DAMAGE events.
* gdk/gdkwindow.c: moved outer gdk_window_new() and gdk_window_reparent()
implementations here, adapted them to propagate redirects to child windows.
gdk_window_end_paint(): copy repainted window contents to redirection pixmap,
clipped to visible region. queue GDK_DAMAGE event delivery.
gdk_window_redirect_to_drawable(): install window painting redirection.
gdk_window_remove_redirection(): remove previously installed redirection.
* gdk/x11/gdkwindow-x11.c: added _gdk_windowing_window_get_visible_rect(),
renamed _gdk_window_new() and _gdk_window_reparent().
* gdk/gdkwindow.h: added GdkWindowRedirect* to GdkWindowObject, export
gdk_window_redirect_to_drawable() and gdk_window_remove_redirection().
* gdk/gdkevents.h: added GDK_DAMAGE event type.
* gdk/gdkevents.c: extract time and state from GDK_DAMAGE events.
* gdk/gdkinternals.h: added internal prototypes.
svn path=/trunk/; revision=20122
2008-05-06 Richard Hult <richard@imendio.com>
* gdk/gdkevents.c: (gdk_event_copy), (gdk_event_free):
* gdk/gdkinternals.h: Add private backend data to events, and
handle it when copying/freeing events. Currently only needed in
the quartz backend.
* gdk/directfb/gdkevents-directfb.c:
* gdk/quartz/gdkevents-quartz.c:
* gdk/win32/gdkevents-win32.c:
* gdk/x11/gdkevents-x11.c: (_gdk_windowing_event_data_copy)
(_gdk_windowing_event_data_free): Add stubs for X11, win32 and
directfb. Implement for quartz. Part of fixing bug #473822.
svn path=/trunk/; revision=20078
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
2008-01-04 Michael Natterer <mitch@imendio.com>
* gdk/x11/gdkinput-x11.c (_gdk_device_get_history): don't forget
to set the time in the returned GdkTimeCoords.
svn path=/trunk/; revision=19304
2007-12-27 Christian Persch <chpe@gnome.org>
* gdk/x11/gdkscreen-x11.c: (init_randr12): Fir the patch from
bug #504886 not to read unitialised memory.
svn path=/trunk/; revision=19247
2007-12-17 Matthias Clasen <mclasen@redhat.com>
* gtk/gtksettings.c: Add a gtk-im-module GTK setting
* gdk/win32/gdkproperty-win32.c:
* gdk/x11/gdksettings.c: ...and back it by a Gtk/IMModule X setting.
* gtk/gtkimmodule.[hc]:
* gtk/gtkimmulticontext.[hc]: When determining the default context,
look at the gtk-im-module setting, and listen for changes to the
setting. (#502446, Akira Tagoh)
svn path=/trunk/; revision=19195
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
2007-11-12 Alexander Larsson <alexl@redhat.com>
* gdk/x11/gdkselection-x11.c:
Avoid loading the ISO8859-1 iconv module.
We're already doing all the required work anyway.
This saves 4kb private dirty memory per gtk+ process
svn path=/trunk/; revision=18986
Thu Aug 23 15:32:09 2007 Tim Janik <timj@imendio.com>
* gdk/x11/gdkgeometry-x11.c (_gdk_window_process_expose): fix
X serial handling to cope with wraparounds and maintain referential
integrity when removing list nodes. based on a patch by Hui Wang,
fixes#461648.
svn path=/trunk/; revision=18693
2007-07-20 Ryan Lortie <desrt@desrt.ca>
* gtk/gtkwidget.c (gtk_widget_is_composited): add note that the
semantics of this call, when mixed with the new
gdk_window_set_composited(), will change in the future.
* gdk/x11/gdkevents-x11.c (gdk_event_translate): only grab Damage
events that belong to us.
svn path=/trunk/; revision=18506
2007-06-29 Matthias Clasen <mclasen@redhat.com>
* gdk/gdk.symbols:
* gdk/gdkkeys.h:
* gdk/x11/gdkkeys-x11.c (gdk_keymap_have_bidi_layouts): New
function to determine if keyboard layouts for both LTR and LTR
languages are in use. Refactor the direction caching code to
make this information available. (#451575, Behnam Esfahbod)
svn path=/trunk/; revision=18301
2007-06-29 Ryan Lortie <desrt@desrt.ca>
* tests/testgtk.c (create_composited_window): Connect the "destroy"
signal so that the 'window' pointer is set back to NULL (like for the
other examples).
* gdk/x11/gdkwindow-x11.c (gdk_window_impl_x11_finalize): Don't
destroy the Damage here. By finalize() XDestroyWindow has already
been called (and took the Damage with it).
Bug #452046.
svn path=/trunk/; revision=18290
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
2007-06-17 Xan Lopez <xan@gnome.org>
* gdk/x11/gdkgeometry-x11.c: replace GDK_WINDOW calls by cast to
GdkWindow. Patch by Tilman Sauerbeck from #2063820.
svn path=/trunk/; revision=18170
2007-06-06 Ross Burton <ross@openedhand.com>
* gdk/x11/gdkspawn-x11.c:
Set DISPLAY in the child process using g_setenv() instead of
constructing a new envp, which lets callers use child setup
functions which call putenv (#442617).
svn path=/trunk/; revision=18062
2007-06-05 Matthias Clasen <mclasen@redhat.com>
* gdk/x11/gdkevents-x11.c (gdk_event_translate): Check that
window_private is not NULL before using it. (#444351, David Ronis)
svn path=/trunk/; revision=18043
* gdk/x11/gdkwindow-x11.c (setup_toplevel_window): Make sure the
leader_window's WM_CLIENT_LEADER points to itself. #435028
svn path=/trunk/; revision=17762
2007-04-30 Tor Lillqvist <tml@novell.com>
Add functionality to set overall opacity of a top-level
window. (#405316)
* gdk/gdk.symbols: Add gdk_window_set_opacity.
* gdk/x11/gdkwindow-x11.c
* gdk/win32/gdkwindow-win32.c: Implement
gdk_window_set_opacity(). On X11 use the _NET_WM_WINDOW_OPACITY
property. On Win32 use SetLayeredWindowAttributes(LWA_ALPHA).
* gdk/gdkwindow.h: Declare gdk_window_set_opacity().
* gdk/x11/gdkscreen-x11.c (gdk_screen_get_rgba_colormap): Document
that this is not implemented in the Windows backend. Add reference
to gdk_window_set_opacity().
svn path=/trunk/; revision=17730
* 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-04-10 Matthias Clasen <mclasen@redhat.com>
* gdk/x11/xsettings-client.[hc]: Change the XSettingsWatchFunc
to return a Bool to indicate success. Update callers and
implementors. Based on a patch by Owen Taylor.
* gdk/x11/gdkevents-x11.c (gdk_xsettings_watch_cb): Don't
leak a reference to gdkwin.
svn path=/trunk/; revision=17592
2007-03-31 Elijah Newren <newren gmail com>
* gdk/x11/gdkwindow-x11.c (setup_toplevel_window,
gdk_x11_window_set_user_time):
Patch from Matthias to add support for the
_NET_WM_USER_TIME_WINDOW EWMH protocol; see #354213.
WARNING: This patch will make metacity <= 2.18.0 freeze on
workspace switch. This is due to a weird problem that should only
affect window managers using gdk in-process for decoration drawing
and which make an unsafe assumption relating to doing so (i.e. it
should only affect metacity). Upgrade your version of metacity if
you hit this bug.
svn path=/trunk/; revision=17574
2007-03-17 Chris Wilson <chris@chris-wilson.co.uk>
* gdk/x11/gdkvisual-x11.c (_gdk_visual_init):
Initialise nxvisuals to 0 in order to handle
XGetVisualInfo() failures gracefully. (#419171)
svn path=/trunk/; revision=17538
2007-03-14 Michael Natterer <mitch@imendio.com>
Make gtk_widget_set_extension_events() work on already realized
widgets (bug #379550, Tommi Komulainen)
* gdk/x11/gdkinput.c (gdk_input_set_extension_events): allow to be
called multiple times without leaking and work correctly when
already realized (don't rely on a configure event following).
* gtk/gtkwidget.c (gtk_widget_set_extension_events_internal): new
internal function which walks the GdkWindow tree and sets the
extension events on all windows that belong to the widget.
(gtk_widget_realize)
(gtk_widget_set_extension_events): use the new function.
svn path=/trunk/; revision=17515
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-03-08 Matthias Clasen <mclasen@redhat.com>
* gdk/x11/gdkasync.c (send_event_handler): Defer the callbacks
to an idle to avoid deadlock with xcb-ified libX11. (#413032,
Sebastian Dröge)
svn path=/trunk/; revision=17436
2007-02-15 Matthias Clasen <mclasen@redhat.com>
* gdk/x11/gdmain-x11.c (_gdk_xgrab_check_button_event): Be more
careful when checking for ButtonRelease events that end implicit
grabs. (#386618, Christof Krüger)
svn path=/trunk/; revision=17304
2007-01-30 Matthias Clasen <mclasen@redhat.com>
* gdk/x11/gdkwindow-x11.c (gdk_x11_window_move_to_current_desktop):
(gdk_x11_window_set_user_time): Be more careful about toplevel
possibly being NULL. (#402453, Sebastian Bacher)
svn path=/trunk/; revision=17236
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
2007-01-02 Matthias Clasen <mclasen@redhat.com>
Try to fix#315732, reported by Luke Hutchinson:
* gdk/x11/xsettings-client.[hc]:
* gdk/x11/gdkdevents-x11.c: Don't assume that ref'ing a GdkWindow
will guarantee that it can be looked up in the xid hash later.
Also, use the nesting server grab function during the xsettings
client initialization. Finally, make xsettings client not
eat DestroyNotifys so that GDK can do its regular cleanup.
svn path=/trunk/; revision=17022
2006-12-10 Matthias Clasen <mclasen@redhat.com>
* configure.in: Check for crt_extern.h and _NSGetEnviron.
* gdk/x11/gdkspawn-x11.c: Fix compilation on Darwin where
environ is not available. (#384168, Min Sik Kim)
2006-10-09 Matthias Clasen <mclasen@redhat.com>
* gdk/x11/gdkkeys-x11.c (gdk_keymap_translate_keyboard_state):
Update the docs to state which out parameters may be NULL.
(#360870, Attilio Fiandrotti)
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).
2006-09-20 Behnam Esfahbod <behnam@zwnj.org>
* gdk/x11/gdkkeys-x11.c:
(get_direction): just check the first shift-level of keyboard
layout for RTL and LTR keysyms() (compliment to #116626)
2006-09-10 Matthias Clasen <mclasen@redhat.com>
* Commit a patch by Behdad to fix typos, omissions and other
errors in the symbol aliasing, and add checks for local PLT
entries. (#354687, Behdad Esfahbod)
2006-08-29 Matthias Clasen <mclasen@redhat.com>
* gdk/gdkwindow.h:
* gdk/gdk.symbols:
* gdk/directfb/gdkwindow-directfb.c (gdk_window_beep):
* gdk/win32/gdkwindow-win32.c (gdk_window_beep):
* gdk/quartz/gdkwindow-quartz.c (gdk_window_beep):
* gdk/x11/gdkwindow-x11.c (gdk_window_beep): Add a function
to beep on a window. For X11, implement this with
XkbBell. (#353455, Mariano Suárez-Alvarez)
2006-08-15 Matthias Clasen <mclasen@redhat.com>
* gdk/x11/gdkwindow-x11.c (gdk_window_get_geometry_hints):
Use XAllocSizeHints to allocate the XSizeHints struct.
(#249285, David Baron)
2006-08-15 Matthias Clasen <mclasen@redhat.com>
* gdk/x11/gdkdnd-x11.c (gdk_window_register_dnd):
* gdk/x11/gdkwindow-x11.c (gdk_window_set_decorations):
(gdk_window_set_functions): Zero out some stack-allocated
X structures, to avoid valgrind warnings about uninitialized
memory. (#349382, David Baron)
2006-07-27 Michael Natterer <mitch@imendio.com>
* gdk/x11/gdkwindow-x11.c (gdk_window_get_type_hint): cast the
return value of XGetWindowProperty() correctly so we don't return
garbage type hints. Pointed out by Tommi Komulainen, patch taken
from https://maemo.org/bugzilla/show_bug.cgi?id=724
2006-07-19 Matthias Clasen <mclasen@redhat.com>
* gdk/x11/gdkx.h (gdk_font_lookup_for_display): When looking
up a font XID, add the XID_FONT_BIT. (#348001)
2006-06-04 Matthias Clasen <mclasen@redhat.com>
* gdk/x11/gdkfont-x11.c (_gdk_font_destroy): Remove the right
XID from the xid table. (#34327, Sampo Savolainen, Tim Janik)
Mon May 15 15:12:05 2006 Søren Sandmann <sandmann@redhat.com>
* gtk/gtklayout.c (gtk_layout_realize),
* gtk/gtkiconview.c (gtk_icon_view_realize),
* gtk/gtktreeview.c (gtk_tree_view_realize): Set the background of
the clip windows to NULL, since they are generally invisible and
don't have EXPOSURE set, which means they temp-unvlicker code
doesn't apply to them.
* gdk/x11/gdkgeometry-x11.c (_gdk_window_move_resize_child): Unset
the background of the parent window during resizing. Invalidate
the uncoered area of the parent window. Bug 341332.