diff options
Diffstat (limited to 'gdk/x11/gdkwindow-x11.c')
-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; |