diff options
author | Alexander Larsson <alexl@redhat.com> | 2009-09-02 23:38:55 +0200 |
---|---|---|
committer | Alexander Larsson <alexl@redhat.com> | 2009-09-02 23:38:55 +0200 |
commit | d67a7eda16d64ba44fa759530abd08147347bae6 (patch) | |
tree | d6b5eb7fb89e780a58258cdfe47c31982a5bbc8f /gdk/x11 | |
parent | 45956aea21e9c8a279f096a0536826a5d14a9c82 (diff) | |
download | gtk+-d67a7eda16d64ba44fa759530abd08147347bae6.tar.gz |
Add gdk_window_restack
This lets you restack a window above or below a specified sibling.
At least eclipse wants this functionallity.
Diffstat (limited to 'gdk/x11')
-rw-r--r-- | gdk/x11/gdkwindow-x11.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/gdk/x11/gdkwindow-x11.c b/gdk/x11/gdkwindow-x11.c index 1682151bb1..82ce213336 100644 --- a/gdk/x11/gdkwindow-x11.c +++ b/gdk/x11/gdkwindow-x11.c @@ -1716,6 +1716,21 @@ gdk_window_x11_restack_under (GdkWindow *window, } static void +gdk_window_x11_restack_toplevel (GdkWindow *window, + GdkWindow *sibling, + gboolean above) +{ + XWindowChanges changes; + + changes.sibling = GDK_WINDOW_XID (sibling); + changes.stack_mode = above ? Above : Below; + XReconfigureWMWindow (GDK_WINDOW_XDISPLAY (window), + GDK_WINDOW_XID (window), + GDK_WINDOW_SCREEN (window), + CWStackMode | CWSibling, &changes); +} + +static void gdk_window_x11_lower (GdkWindow *window) { XLowerWindow (GDK_WINDOW_XDISPLAY (window), GDK_WINDOW_XID (window)); @@ -5562,6 +5577,7 @@ gdk_window_impl_iface_init (GdkWindowImplIface *iface) iface->raise = gdk_window_x11_raise; iface->lower = gdk_window_x11_lower; iface->restack_under = gdk_window_x11_restack_under; + iface->restack_toplevel = gdk_window_x11_restack_toplevel; iface->move_resize = gdk_window_x11_move_resize; iface->set_background = gdk_window_x11_set_background; iface->set_back_pixmap = gdk_window_x11_set_back_pixmap; |