aboutsummaryrefslogtreecommitdiff
path: root/libLumina/LuminaX11.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libLumina/LuminaX11.cpp')
-rw-r--r--libLumina/LuminaX11.cpp27
1 files changed, 24 insertions, 3 deletions
diff --git a/libLumina/LuminaX11.cpp b/libLumina/LuminaX11.cpp
index 3874f55e..048333b4 100644
--- a/libLumina/LuminaX11.cpp
+++ b/libLumina/LuminaX11.cpp
@@ -1446,6 +1446,7 @@ void LXCB::WM_Set_Virtual_Roots(QList<WId> list){
}
// _NET_DESKTOP_LAYOUT
+// -- skipped for now - see note in LuminaX11.h
// _NET_SHOWING_DESKTOP
bool LXCB::WM_Get_Showing_Desktop(){
@@ -1466,13 +1467,33 @@ void LXCB::WM_Request_Close_Window(WId win){
}
// _NET_MOVERESIZE_WINDOW
+void LXCB::WM_Request_MoveResize_Window(WId win, QRect geom, bool fromuser, LXCB::GRAVITY grav, LXCB::MOVERESIZE_WINDOW_FLAGS flags){
+ //Note: The LXCB::GRAVITY enum exactly matches the XCB values (just different names)
+ //Convert the flags into the XCB type
+ int eflags = 0; //xcb_ewmh_moveresize_window_opt_flags_t
+ if(flags.testFlag(LXCB::X)){ eflags = eflags | XCB_EWMH_MOVERESIZE_WINDOW_X; }
+ if(flags.testFlag(LXCB::Y)){ eflags = eflags | XCB_EWMH_MOVERESIZE_WINDOW_Y; }
+ if(flags.testFlag(LXCB::WIDTH)){ eflags = eflags | XCB_EWMH_MOVERESIZE_WINDOW_WIDTH; }
+ if(flags.testFlag(LXCB::HEIGHT)){ eflags = eflags | XCB_EWMH_MOVERESIZE_WINDOW_HEIGHT; }
+
+ xcb_ewmh_request_moveresize_window(&EWMH, QX11Info::appScreen(), win, (xcb_gravity_t) grav, \
+ (fromuser ? XCB_EWMH_CLIENT_SOURCE_TYPE_OTHER : XCB_EWMH_CLIENT_SOURCE_TYPE_NORMAL), \
+ (xcb_ewmh_moveresize_window_opt_flags_t) eflags, geom.x(), geom.y(), geom.width(), geom.height() );
+}
// _NET_WM_MOVERESIZE
-
+// -- skipped for now - see note in LuminaX11.h
+
// _NET_RESTACK_WINDOW
-
+void LXCB::WM_Request_Restack_Window(WId win, WId sibling, LXCB::STACK_FLAG flag){
+ //Note: The STACK_FLAG enum matches the xcb_stack_mode_t enum exactly (just different names)
+ xcb_ewmh_request_restack_window(&EWMH, QX11Info::appScreen(), win, sibling, (xcb_stack_mode_t) flag);
+}
+
// _NET_REQUEST_FRAME_EXTENTS
-
+void LXCB::WM_Request_Frame_Extents(WId win){
+ xcb_ewmh_request_frame_extents(&EWMH, QX11Info::appScreen(), win);
+}
// === WINDOW PROPERTIES ===
// _NET_SUPPORTED (Window)
bgstack15