diff --git a/resources.qrc b/resources.qrc index 54c4b5cd98..9fa393c4ef 100644 --- a/resources.qrc +++ b/resources.qrc @@ -7,5 +7,6 @@ theme/Style/qmldir src/gui/tray/ActivityActionButton.qml src/gui/tray/ActivityItem.qml + src/gui/tray/AutoSizingMenu.qml diff --git a/src/gui/tray/AutoSizingMenu.qml b/src/gui/tray/AutoSizingMenu.qml new file mode 100644 index 0000000000..fe929eb3c1 --- /dev/null +++ b/src/gui/tray/AutoSizingMenu.qml @@ -0,0 +1,15 @@ +import QtQuick 2.15 +import QtQuick.Controls 2.3 + +Menu { + width: { + var result = 0; + var padding = 0; + for (var i = 0; i < count; ++i) { + var item = itemAt(i); + result = Math.max(item.contentItem.implicitWidth, result); + padding = Math.max(item.padding, padding); + } + return result + padding * 2; + } +} diff --git a/src/gui/tray/Window.qml b/src/gui/tray/Window.qml index 1e0d8436bf..ccb4af74e8 100644 --- a/src/gui/tray/Window.qml +++ b/src/gui/tray/Window.qml @@ -508,12 +508,10 @@ Window { Accessible.name: qsTr("More apps") Accessible.onPressAction: trayWindowAppsButton.clicked() - Menu { + AutoSizingMenu { id: appsMenu y: (trayWindowAppsButton.y + trayWindowAppsButton.height + 2) readonly property Item listContentItem: contentItem.contentItem - width: Math.min(listContentItem.childrenRect.width + 4, Style.trayWindowWidth / 2) - height: Math.min(implicitHeight, maxMenuHeight) closePolicy: Menu.CloseOnPressOutsideParent | Menu.CloseOnEscape background: Rectangle { @@ -531,24 +529,9 @@ Window { text: appName font.pixelSize: Style.topLinePixelSize icon.source: appIconUrl - width: contentItem.implicitWidth + leftPadding + rightPadding onTriggered: UserAppsModel.openAppUrl(appUrl) hoverEnabled: true - background: Item { - width: appsMenu.width - height: parent.height - - Rectangle { - anchors.fill: parent - anchors.margins: 1 - color: appEntry.hovered ? Style.lightHover : "transparent" - } - - Accessible.role: Accessible.PopupMenu - Accessible.name: qsTr("Apps menu") - } - Accessible.role: Accessible.MenuItem Accessible.name: qsTr("Open %1 in browser").arg(appName) Accessible.onPressAction: appEntry.triggered()