aboutsummaryrefslogtreecommitdiff
path: root/src-qt5/core/lumina-desktop-unified/src-desktop
diff options
context:
space:
mode:
Diffstat (limited to 'src-qt5/core/lumina-desktop-unified/src-desktop')
-rw-r--r--src-qt5/core/lumina-desktop-unified/src-desktop/src-cpp/RootDesktopObject.cpp10
-rw-r--r--src-qt5/core/lumina-desktop-unified/src-desktop/src-cpp/RootDesktopObject.h2
2 files changed, 8 insertions, 4 deletions
diff --git a/src-qt5/core/lumina-desktop-unified/src-desktop/src-cpp/RootDesktopObject.cpp b/src-qt5/core/lumina-desktop-unified/src-desktop/src-cpp/RootDesktopObject.cpp
index 254a67ac..523fa09f 100644
--- a/src-qt5/core/lumina-desktop-unified/src-desktop/src-cpp/RootDesktopObject.cpp
+++ b/src-qt5/core/lumina-desktop-unified/src-desktop/src-cpp/RootDesktopObject.cpp
@@ -13,6 +13,7 @@
// === PUBLIC ===
RootDesktopObject::RootDesktopObject(QObject *parent) : QObject(parent){
+ last_window_up = 0;
updateScreens(); //make sure the internal list is updated right away
connect(this, SIGNAL(changePanels(QStringList)), this, SLOT(setPanels(QStringList)) );
}
@@ -140,6 +141,7 @@ void RootDesktopObject::setPanels(QStringList ids){
void RootDesktopObject::setWindows(QList<NativeWindowObject*> list){
window_objects = list;
emit windowsChanged();
+ mousePositionChanged(true);
}
void RootDesktopObject::logout(){
@@ -150,7 +152,7 @@ void RootDesktopObject::lockscreen(){
emit lockScreen();
}
-void RootDesktopObject::mousePositionChanged(){
+void RootDesktopObject::mousePositionChanged(bool lowerall){
emit mouseMoved();
// Go through the transparent windows (in order of high->low in stack)
// and raise/lower the transparent overlays as needed
@@ -162,11 +164,13 @@ void RootDesktopObject::mousePositionChanged(){
Lumina::NWS->raiseWindow(window_objects[i]);
last_window_up = window_objects[i];
}
- return; //found the currently-hovered window
+ if(!lowerall){ return; } //found the currently-hovered window
+ }else if(lowerall){
+ Lumina::NWS->lowerWindow(window_objects[i]);
}
}
//failover for when no window has the mouse over it (lower all of them)
- if(last_window_up!=0){ Lumina::NWS->lowerWindow(last_window_up); }
+ if(last_window_up!=0 && !lowerall){ Lumina::NWS->lowerWindow(last_window_up); }
}
void RootDesktopObject::launchApp(QString appOrPath){
diff --git a/src-qt5/core/lumina-desktop-unified/src-desktop/src-cpp/RootDesktopObject.h b/src-qt5/core/lumina-desktop-unified/src-desktop/src-cpp/RootDesktopObject.h
index b1ca6f7e..cc70f813 100644
--- a/src-qt5/core/lumina-desktop-unified/src-desktop/src-cpp/RootDesktopObject.h
+++ b/src-qt5/core/lumina-desktop-unified/src-desktop/src-cpp/RootDesktopObject.h
@@ -40,7 +40,7 @@ public:
//QML Access Functions
Q_INVOKABLE void logout();
Q_INVOKABLE void lockscreen();
- Q_INVOKABLE void mousePositionChanged();
+ Q_INVOKABLE void mousePositionChanged(bool lowerall = false);
Q_INVOKABLE void launchApp(QString appOrPath);
private:
bgstack15