diff options
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.cpp | 10 | ||||
-rw-r--r-- | src-qt5/core/lumina-desktop-unified/src-desktop/src-cpp/RootDesktopObject.h | 2 |
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: |