diff options
author | Ken Moore <moorekou@gmail.com> | 2015-11-11 14:20:56 -0500 |
---|---|---|
committer | Ken Moore <moorekou@gmail.com> | 2015-11-11 14:20:56 -0500 |
commit | 7cba137e77529ff3c0e431d06efd600ab988f8c2 (patch) | |
tree | bcd6d7edac501de491d6f8e2399faf55bb678ba0 /libLumina/LuminaX11.h | |
parent | Replace the libreoffice SVG icon skip with a generic rule that skips any SVG ... (diff) | |
download | lumina-7cba137e77529ff3c0e431d06efd600ab988f8c2.tar.gz lumina-7cba137e77529ff3c0e431d06efd600ab988f8c2.tar.bz2 lumina-7cba137e77529ff3c0e431d06efd600ab988f8c2.zip |
Add support for all the important Root window EWMH properties to the LuminaX11 class.
Diffstat (limited to 'libLumina/LuminaX11.h')
-rw-r--r-- | libLumina/LuminaX11.h | 47 |
1 files changed, 44 insertions, 3 deletions
diff --git a/libLumina/LuminaX11.h b/libLumina/LuminaX11.h index 779fae0e..fdc86a76 100644 --- a/libLumina/LuminaX11.h +++ b/libLumina/LuminaX11.h @@ -1,6 +1,6 @@ //=========================================== // Lumina-DE source code -// Copyright (c) 2014, Ken Moore +// Copyright (c) 2014-2015, Ken Moore // Available under the 3-clause BSD license // See the LICENSE file for full details //=========================================== @@ -149,33 +149,73 @@ public: // _NET_SUPPORTED void WM_Set_Root_Supported(); //set the atom list of supported features on the root window // _NET_CLIENT_LIST + // Note: client list ordered oldest->newest, stacking list ordered bottom->top + QList<WId> WM_Get_Client_List(bool stacking = false); + void WM_Set_Client_List(QList<WId> list, bool stacking=false); // _NET_NUMBER_OF_DESKTOPS + // Note: This is the number of virtual workspaces, not monitors + unsigned int WM_Get_Number_Desktops(); //return value equals 0 for errors + void WM_SetNumber_Desktops(unsigned int number); //should be at least 1 // _NET_DESKTOP_GEOMETRY + // Note: This property is the combined size and/or bounding rectangle of all monitors + // The definition works well for single-monitors, but gets really fuzzy for multiple monitors + QSize WM_Get_Desktop_Geometry(); + void WM_Set_Desktop_Geometry(QSize); // _NET_DESKTOP_VIEWPORT + // Note: This is the X/Y origin of the viewport for each monitor + // Thi is normally (0,0) , unless desktop larger than monitor supports + QList<QPoint> WM_Get_Desktop_Viewport(); + void WM_Set_Desktop_Viewport(QList<QPoint> list); // _NET_CURRENT_DESKTOP + // Note: Current workspace number. Range = 0 to (_NET_NUMBER_OF_DESKTOPS - 1) + int WM_Get_Current_Desktop(); //Returns -1 for errors + void WM_Set_Current_Desktop(unsigned int num); // _NET_DESKTOP_NAMES + QStringList WM_Get_Desktop_Names(); + void WM_Set_Desktop_Names(QStringList list); // _NET_ACTIVE_WINDOW + WId WM_Get_Active_Window(); + void WM_Set_Active_Window(WId win); // _NET_WORKAREA + // Note: The workarea is the recangle for each monitor where no space is reserved + // This accounts for any STRUT's that are set, within the current VIEWPORT + QList<QRect> WM_Get_Workarea(); + void WM_Set_Workarea(QList<QRect> list); // _NET_SUPPORTING_WM_CHECK + // Note: This needs to be set on two windows: root -> child, and child->child + // So the "set" function will do both at the same time + // The child window also needs the _NET_WM_NAME set to the window manager name + WId WM_Get_Supporting_WM(WId win); + void WM_Set_Supporting_WM(WId child); // _NET_VIRTUAL_ROOTS + QList<WId> WM_Get_Virtual_Roots(); + void WM_Set_Virtual_Roots(QList<WId> list); // _NET_DESKTOP_LAYOUT + // NOTE: Skip this implementation for now - is supposed to be set by a pager (not the WM) + // and the WM can choose to use/ignore it as necessary. + // (Just use the current XRandR layout instead of this setting/property) // _NET_SHOWING_DESKTOP + // Note: This is true/false depending on whether the WM is hiding all windows to show the desktop only + bool WM_Get_Showing_Desktop(); + void WM_Set_Showing_Desktop(bool show); - // -- ROOT WINDOW MESSAGES + // -- ROOT WINDOW MESSAGES/REQUESTS // _NET_CLOSE_WINDOW + void WM_Request_Close_Window(WId win); - // _NET_MOVERESIZE_WINDOW + // _NET_MOVERESIZE_WINDOW + //void WM_Request_MoveResize_Window(WId win, LXCB::Gravity grav, LXCB::WindowOptFlags flags, QRect geom); // _NET_WM_MOVERESIZE @@ -183,6 +223,7 @@ public: // _NET_REQUEST_FRAME_EXTENTS + // -- WINDOW PROPERTIES // _NET_SUPPORTED void WM_Set_Window_Supported(WId win); //set the atom list of supported features on the given window |