aboutsummaryrefslogtreecommitdiff
path: root/libLumina/LuminaX11.cpp
diff options
context:
space:
mode:
authorKen Moore <moorekou@gmail.com>2015-07-17 13:08:16 -0400
committerKen Moore <moorekou@gmail.com>2015-07-17 13:08:16 -0400
commit96bcdec1f14e8f880b0ef053c5436af3662b19b8 (patch)
treeef33e6d0220a92ca308f58dd2ad3e5ba48a6fc48 /libLumina/LuminaX11.cpp
parentMerge branch 'master' of github.com:pcbsd/lumina (diff)
downloadlumina-96bcdec1f14e8f880b0ef053c5436af3662b19b8.tar.gz
lumina-96bcdec1f14e8f880b0ef053c5436af3662b19b8.tar.bz2
lumina-96bcdec1f14e8f880b0ef053c5436af3662b19b8.zip
Commit some quick fixes:
1) Switch some X11->XCB functions around (SetAsDesktop(), SetDisableWMActions()). 2) Fix up some QtQuick plugin detection routines (now it will properly see the user's quickplugins if any). 3) Connect the status change signal/slots for QtQuick plugins to try and detect script failures and remove the script (still not working reliably).
Diffstat (limited to 'libLumina/LuminaX11.cpp')
-rw-r--r--libLumina/LuminaX11.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/libLumina/LuminaX11.cpp b/libLumina/LuminaX11.cpp
index 770f64db..cdbb038f 100644
--- a/libLumina/LuminaX11.cpp
+++ b/libLumina/LuminaX11.cpp
@@ -1183,9 +1183,18 @@ void LXCB::SetAsSticky(WId win){
xcb_flush(QX11Info::connection()); //apply it right away*/
}
+// === SetDisableWMActions() ===
+void LXCB::SetDisableWMActions(WId win){
+ //This disables all the various control that a WM allows for the window (except for allowing the "Sticky" state)
+ xcb_atom_t list[1];
+ list[0] = EWMH._NET_WM_ACTION_STICK;
+ xcb_ewmh_set_wm_allowed_actions(&EWMH, win, 1, list);
+}
+
// === SetAsPanel() ===
void LXCB::SetAsPanel(WId win){
if(win==0){ return; }
+ SetDisableWMActions(win); //also need to disable WM actions for this window
//Disable Input focus (panel activation ruins task manager window detection routines)
// - Disable Input flag in WM_HINTS
xcb_icccm_wm_hints_t hints;
@@ -1262,6 +1271,14 @@ void LXCB::SetAsPanel(WId win){
}
+void LXCB::SetAsDesktop(WId win){
+ if(win==0){ return; }
+ SetDisableWMActions(win); //also need to disable WM actions for this window
+ xcb_atom_t list[1];
+ list[0] = EWMH._NET_WM_WINDOW_TYPE_DESKTOP;
+ xcb_ewmh_set_wm_window_type(&EWMH, win, 1, list);
+}
+
// === CloseWindow() ===
void LXCB::CloseWindow(WId win){
if(win==0){ return; }
bgstack15