From 838826b4fdd47e4ca3d19f7b74233e419d38726e Mon Sep 17 00:00:00 2001 From: Yari Polla Date: Sun, 25 Sep 2022 20:23:57 +0200 Subject: [PATCH 1/2] homescreens: also close the search widget with Meta key --- components/mobileshell/qml/widgets/krunner/KRunnerWidget.qml | 1 + containments/homescreens/folio/package/contents/ui/main.qml | 5 +++++ .../homescreens/halcyon/package/contents/ui/main.qml | 5 +++++ 3 files changed, 11 insertions(+) diff --git a/components/mobileshell/qml/widgets/krunner/KRunnerWidget.qml b/components/mobileshell/qml/widgets/krunner/KRunnerWidget.qml index 43f925c3e..48aea31ac 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 97911635b..ea8b58d4b 100644 --- a/containments/homescreens/folio/package/contents/ui/main.qml +++ b/containments/homescreens/folio/package/contents/ui/main.qml @@ -46,6 +46,11 @@ MobileShell.HomeScreen { MobileShell.TopPanelControls.closeActionDrawer(); } + // Always close the search widget as well + if (searchWidget.isOpen) { + searchWidget.close(); + } + // there's a couple of steps: // - minimize windows (only if we are in an app) // - open app drawer diff --git a/containments/homescreens/halcyon/package/contents/ui/main.qml b/containments/homescreens/halcyon/package/contents/ui/main.qml index 1df10e57e..c44d8abe1 100644 --- a/containments/homescreens/halcyon/package/contents/ui/main.qml +++ b/containments/homescreens/halcyon/package/contents/ui/main.qml @@ -45,6 +45,11 @@ MobileShell.HomeScreen { MobileShell.TopPanelControls.closeActionDrawer(); } + // Always close the search widget as well + if (search.isOpen) { + search.close(); + } + // there's a couple of steps: // - minimize windows (only if we are in an app) // - open app drawer -- GitLab From f03cf4aa68e215eee9a976e812930667a9ed55ac Mon Sep 17 00:00:00 2001 From: Yari Polla Date: Tue, 27 Sep 2022 17:25:43 +0200 Subject: [PATCH 2/2] homescreens: only close search widget and action drawer without opening the menu --- .../folio/package/contents/ui/main.qml | 27 ++++++++++--------- .../halcyon/package/contents/ui/main.qml | 27 ++++++++++--------- 2 files changed, 30 insertions(+), 24 deletions(-) diff --git a/containments/homescreens/folio/package/contents/ui/main.qml b/containments/homescreens/folio/package/contents/ui/main.qml index ea8b58d4b..eacc14172 100644 --- a/containments/homescreens/folio/package/contents/ui/main.qml +++ b/containments/homescreens/folio/package/contents/ui/main.qml @@ -40,22 +40,25 @@ MobileShell.HomeScreen { forceActiveFocus(); } - Plasmoid.onActivated: { - // Always close action drawer - if (MobileShell.TopPanelControls.actionDrawerVisible) { - MobileShell.TopPanelControls.closeActionDrawer(); - } - - // Always close the search widget as well - if (searchWidget.isOpen) { - searchWidget.close(); - } - + 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 c44d8abe1..abf62556f 100644 --- a/containments/homescreens/halcyon/package/contents/ui/main.qml +++ b/containments/homescreens/halcyon/package/contents/ui/main.qml @@ -39,22 +39,25 @@ MobileShell.HomeScreen { } } - Plasmoid.onActivated: { - // Always close action drawer - if (MobileShell.TopPanelControls.actionDrawerVisible) { - MobileShell.TopPanelControls.closeActionDrawer(); - } - - // Always close the search widget as well - if (search.isOpen) { - search.close(); - } - + 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; -- GitLab