summaryrefslogtreecommitdiff
path: root/gdk/x11
diff options
context:
space:
mode:
authorAlexander Larsson <alexl@redhat.com>2009-09-02 23:38:55 +0200
committerAlexander Larsson <alexl@redhat.com>2009-09-02 23:38:55 +0200
commitd67a7eda16d64ba44fa759530abd08147347bae6 (patch)
treed6b5eb7fb89e780a58258cdfe47c31982a5bbc8f /gdk/x11
parent45956aea21e9c8a279f096a0536826a5d14a9c82 (diff)
downloadgtk+-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.c16
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;