diff --git a/launchercontroller.cpp b/launchercontroller.cpp index b48c6829..dec7e799 100644 --- a/launchercontroller.cpp +++ b/launchercontroller.cpp @@ -159,9 +159,10 @@ void LauncherController::hideWithTimer() m_pendingHide = true; return; } - - qDebug() << "hide with timer"; - setVisible(false); + if (m_avoidHide) { + qDebug() << "hide with timer"; + setVisible(false); + } } } @@ -183,3 +184,8 @@ void LauncherController::closeAllPopups() Q_ASSERT(qAppPrivate); qAppPrivate->closeAllPopups(); } + +void LauncherController::setAvoidHide(bool avoidHide) +{ + m_avoidHide = avoidHide; +} \ No newline at end of file diff --git a/launchercontroller.h b/launchercontroller.h index 7ca55bd7..286804f0 100644 --- a/launchercontroller.h +++ b/launchercontroller.h @@ -47,6 +47,7 @@ class LauncherController : public QObject void setCurrentFrame(const QString & frame); Q_INVOKABLE void hideWithTimer(); + Q_INVOKABLE void setAvoidHide(bool avoidHide); Q_INVOKABLE void cancelHide(); Q_INVOKABLE QFont adjustFontWeight(const QFont& f, QFont::Weight weight); @@ -81,4 +82,5 @@ class LauncherController : public QObject bool m_visible; QString m_currentFrame; bool m_pendingHide = false; + bool m_avoidHide = true; }; diff --git a/qml/AppItemMenu.qml b/qml/AppItemMenu.qml index fd42062d..cfc02a67 100644 --- a/qml/AppItemMenu.qml +++ b/qml/AppItemMenu.qml @@ -126,7 +126,12 @@ Loader { enabled: !root.desktopId.startsWith("internal/folders/") && !DesktopIntegration.appIsCompulsoryForDesktop(root.desktopId) text: qsTr("Uninstall") onTriggered: { - LauncherController.visible = false + if(LauncherController.currentFrame !== "FullscreenFrame"){ + LauncherController.setAvoidHide(true) + LauncherController.visible = false + }else{ + LauncherController.setAvoidHide(false) + } confirmUninstallDlg.appName = root.display confirmUninstallDlg.appId = root.desktopId confirmUninstallDlg.icon = root.iconName diff --git a/shell-launcher-applet/package/launcheritem.qml b/shell-launcher-applet/package/launcheritem.qml index f22830b3..42250c3e 100644 --- a/shell-launcher-applet/package/launcheritem.qml +++ b/shell-launcher-applet/package/launcheritem.qml @@ -291,6 +291,16 @@ AppletItem { minimumHeight: layout.implicitHeight + DStyle.Style.dialogWindow.titleBarHeight maximumWidth: minimumWidth maximumHeight: minimumHeight + + onVisibleChanged: { + if (!visible) { + LauncherController.setAvoidHide(true) + if (LauncherController.currentFrame === "FullscreenFrame") { + fullscreenFrame.requestActivate() + } + } + } + ColumnLayout { id: layout spacing: 0