diff --git a/components/mobileshell/qml/widgets/krunner/KRunnerWidget.qml b/components/mobileshell/qml/widgets/krunner/KRunnerWidget.qml index 43f925c3e89df946a2ee03956bf5b4306d8ec9fb..48aea31ac5d4118e9d00ba0244a269d0922593ce 100644 --- a/components/mobileshell/qml/widgets/krunner/KRunnerWidget.qml +++ b/components/mobileshell/qml/widgets/krunner/KRunnerWidget.qml @@ -58,6 +58,7 @@ Item { readonly property real closedContentY: PlasmaCore.Units.gridUnit * 5 readonly property real openedContentY: 0 readonly property real openFactor: Math.max(0, Math.min(1, 1 - flickable.contentY / closedContentY)) + readonly property bool isOpen: openFactor != 0 Rectangle { anchors.fill: parent diff --git a/containments/homescreens/folio/package/contents/ui/main.qml b/containments/homescreens/folio/package/contents/ui/main.qml index 97911635be7718f2f99ac7dbe4f9f7d577d1469f..eacc141722ae6f4da9ce3553a029e7142d64b069 100644 --- a/containments/homescreens/folio/package/contents/ui/main.qml +++ b/containments/homescreens/folio/package/contents/ui/main.qml @@ -40,17 +40,25 @@ MobileShell.HomeScreen { forceActiveFocus(); } - Plasmoid.onActivated: { - // Always close action drawer - if (MobileShell.TopPanelControls.actionDrawerVisible) { - MobileShell.TopPanelControls.closeActionDrawer(); - } - + Plasmoid.onActivated: { // there's a couple of steps: // - minimize windows (only if we are in an app) // - open app drawer // - close app drawer and, if necessary, restore windows - if (!plasmoid.nativeInterface.showingDesktop && !MobileShell.HomeScreenControls.homeScreenVisible) { + if (!plasmoid.nativeInterface.showingDesktop && !MobileShell.HomeScreenControls.homeScreenVisible + || MobileShell.TopPanelControls.actionDrawerVisible + || searchWidget.isOpen + ) { + // Always close action drawer + if (MobileShell.TopPanelControls.actionDrawerVisible) { + MobileShell.TopPanelControls.closeActionDrawer(); + } + + // Always close the search widget as well + if (searchWidget.isOpen) { + searchWidget.close(); + } + plasmoid.nativeInterface.showingDesktop = true; } else if (homescreen.homeScreenState.currentView === HomeScreenState.PageView) { homescreen.homeScreenState.openAppDrawer(); diff --git a/containments/homescreens/halcyon/package/contents/ui/main.qml b/containments/homescreens/halcyon/package/contents/ui/main.qml index 1df10e57ef573045411074f5ae7eba6472de226c..abf62556f4ca0a476f7652b69c0297f4b0883c05 100644 --- a/containments/homescreens/halcyon/package/contents/ui/main.qml +++ b/containments/homescreens/halcyon/package/contents/ui/main.qml @@ -39,17 +39,25 @@ MobileShell.HomeScreen { } } - Plasmoid.onActivated: { - // Always close action drawer - if (MobileShell.TopPanelControls.actionDrawerVisible) { - MobileShell.TopPanelControls.closeActionDrawer(); - } - + Plasmoid.onActivated: { // there's a couple of steps: // - minimize windows (only if we are in an app) // - open app drawer // - close app drawer and, if necessary, restore windows - if (!plasmoid.nativeInterface.showingDesktop && !MobileShell.HomeScreenControls.homeScreenVisible) { + if (!plasmoid.nativeInterface.showingDesktop && !MobileShell.HomeScreenControls.homeScreenVisible + || MobileShell.TopPanelControls.actionDrawerVisible + || search.isOpen + ) { + // Always close action drawer + if (MobileShell.TopPanelControls.actionDrawerVisible) { + MobileShell.TopPanelControls.closeActionDrawer(); + } + + // Always close the search widget as well + if (search.isOpen) { + search.close(); + } + plasmoid.nativeInterface.showingDesktop = true; } else if (homescreen.page == 0) { homescreen.page = 1;