diff --git a/containments/homescreens/halcyon/package/contents/ui/FavoritesAppDelegate.qml b/containments/homescreens/halcyon/package/contents/ui/FavoritesAppDelegate.qml index 303a164f..0ebfc1fe 100644 --- a/containments/homescreens/halcyon/package/contents/ui/FavoritesAppDelegate.qml +++ b/containments/homescreens/halcyon/package/contents/ui/FavoritesAppDelegate.qml @@ -53,17 +53,18 @@ Item { // close context menu if drag move onXChanged: { if (dialogLoader.item) { - dialogLoader.active = false; + dialogLoader.item.close() } } onYChanged: { if (dialogLoader.item) { - dialogLoader.active = false; + dialogLoader.item.close() } } function openContextMenu() { dialogLoader.active = true; + dialogLoader.item.open(); } function launch() { @@ -91,28 +92,27 @@ Item { application.setMinimizedDelegate(delegate); MobileShell.AppLaunch.launchOrActivateApp(application.storageId); } - + Loader { id: dialogLoader active: false - sourceComponent: MobileShell.PopupMenu { - id: popup - - mappedGlobalCoordinates: delegate.mapToGlobal(delegate.x, delegate.y) - relatedTo: delegate - + sourceComponent: PlasmaComponents.Menu { + id: menu title: label.text - menuActions: delegate.menuActions - - onVisibleChanged: { - if (!popup.visible) { - dialogLoader.active = false; + closePolicy: PlasmaComponents.Menu.CloseOnReleaseOutside | PlasmaComponents.Menu.CloseOnEscape + + Repeater { + model: menuActions + delegate: PlasmaComponents.MenuItem { + icon.name: modelData.iconName + text: modelData.text + onClicked: modelData.triggered() } } + + onClosed: dialogLoader.active = false } - - onLoaded: item.showOverlay() } MouseArea { diff --git a/containments/homescreens/halcyon/package/contents/ui/GridAppDelegate.qml b/containments/homescreens/halcyon/package/contents/ui/GridAppDelegate.qml index a80abd77..4ffe7e9d 100644 --- a/containments/homescreens/halcyon/package/contents/ui/GridAppDelegate.qml +++ b/containments/homescreens/halcyon/package/contents/ui/GridAppDelegate.qml @@ -36,6 +36,7 @@ MouseArea { function openContextMenu() { dialogLoader.active = true; + dialogLoader.item.open(); } cursorShape: Qt.PointingHandCursor @@ -50,34 +51,24 @@ MouseArea { delegate.launch(delegate.x + (PlasmaCore.Units.smallSpacing * 2), delegate.y + (PlasmaCore.Units.smallSpacing * 2), icon.source, application.name, application.storageId); } } - + Loader { id: dialogLoader active: false - - sourceComponent: MobileShell.PopupMenu { - id: popup - - mappedGlobalCoordinates: icon.mapToGlobal(icon.x, icon.y) - relatedTo: icon - + + sourceComponent: PlasmaComponents.Menu { title: label.text - menuActions: [ - Kirigami.Action { - iconName: "emblem-favorite" - text: i18n("Add to favourites") - onTriggered: Halcyon.PinnedModel.addApp(application.storageId, 0); - } - ] - - onVisibleChanged: { - if (!popup.visible) { - dialogLoader.active = false; + closePolicy: PlasmaComponents.Menu.CloseOnReleaseOutside | PlasmaComponents.Menu.CloseOnEscape + + PlasmaComponents.MenuItem { + icon.name: "emblem-favorite" + text: i18n("Add to favourites") + onClicked: { + Halcyon.PinnedModel.addApp(application.storageId, 0); } } + onClosed: dialogLoader.active = false } - - onLoaded: item.showOverlay() } // grow/shrink animation @@ -134,8 +125,6 @@ MouseArea { } ColumnLayout { - id: columnLayout - anchors { fill: parent leftMargin: margins