aboutsummaryrefslogtreecommitdiff
path: root/src-qt5/core/libLumina/NativeWindowSystem.cpp
diff options
context:
space:
mode:
authorKen Moore <ken@ixsystems.com>2017-03-03 14:25:29 -0500
committerKen Moore <ken@ixsystems.com>2017-03-03 14:25:29 -0500
commite51eb7f9b51dc29be83a00abf2ebf95cc17d0ba7 (patch)
tree65276d138bec55ca4a37e5788269aaf027eb0a9f /src-qt5/core/libLumina/NativeWindowSystem.cpp
parentUpdate the .gitignore file a bit. (diff)
downloadlumina-e51eb7f9b51dc29be83a00abf2ebf95cc17d0ba7.tar.gz
lumina-e51eb7f9b51dc29be83a00abf2ebf95cc17d0ba7.tar.bz2
lumina-e51eb7f9b51dc29be83a00abf2ebf95cc17d0ba7.zip
Another large batch of updates to the Native Window "plumbing":
1) Handle all property changes in bulk groups for efficiency 2) Add simplification functions for changing single properties. 3) Automatically prune redundant property settings from signals 4) Add another property or two, and simplify the number of "extra" signals/functions for non-property changes/requests. 5) Starting cleaning up the new NativeWindowSystem class to use the new plumbing, and get it ready for the XCB "guts" to be copied in.
Diffstat (limited to 'src-qt5/core/libLumina/NativeWindowSystem.cpp')
-rw-r--r--src-qt5/core/libLumina/NativeWindowSystem.cpp20
1 files changed, 18 insertions, 2 deletions
diff --git a/src-qt5/core/libLumina/NativeWindowSystem.cpp b/src-qt5/core/libLumina/NativeWindowSystem.cpp
index c8e6d483..c2af0560 100644
--- a/src-qt5/core/libLumina/NativeWindowSystem.cpp
+++ b/src-qt5/core/libLumina/NativeWindowSystem.cpp
@@ -152,8 +152,9 @@ bool NativeWindowSystem::start(){
//Initialize all the extra atoms that the EWMH object does not have
if( !obj->init_ATOMS() ){ return false; }
} //Done with private object init
-
- return true;
+ bool ok = obj->register_wm();
+ if(ok){ ok = obj->startSystemTray(); }
+ return ok;
}
void NativeWindowSystem::stop(){
@@ -165,6 +166,7 @@ void NativeWindowSystem::UpdateWindowProperties(NativeWindow* win, QList< Native
}
+
// === PUBLIC SLOTS ===
//These are the slots which are only used by the desktop system itself or the NativeWindowEventFilter
void NativeWindowSystem::RegisterVirtualRoot(WId){
@@ -176,6 +178,10 @@ void NativeWindowSystem::NewWindowDetected(WId){
}
+void NativeWindowSystem::NewTrayWindowDetected(WId){
+
+}
+
void NativeWindowSystem::WindowCloseDetected(WId){
}
@@ -202,6 +208,16 @@ void NativeWindowSystem::NewMouseRelease(int buttoncode){
// === PRIVATE SLOTS ===
//These are the slots which are built-in and automatically connected when a new NativeWindow is created
+void NativeWindowSystem::RequestPropertiesChange(WId win, QList<NativeWindow::Property> props, QList<QVariant> vals){
+ //Find the window object associated with this id
+ bool istraywin = false; //just in case we care later if it is a tray window or a regular window
+ NativeWindow *WIN = findWindow(win);
+ if(WIN==0){ istraywin = true; WIN = findTrayWindow(win); }
+ if(WIN==0){ return; } //invalid window ID - no longer available
+ //Now make any changes as needed
+
+}
+
void NativeWindowSystem::RequestActivate(WId){
}
bgstack15