From 5b02ff1f872692bd33576aab2982fdd0eb8038db Mon Sep 17 00:00:00 2001 From: zhangkun2 Date: Tue, 22 Sep 2026 22:11:04 +0800 Subject: [PATCH] fix: set popupType to Window for launchpad menus to avoid clipping BUG-280627 Add popupType: Popup.Window to the three Menu instances in dde-launchpad (AppItemMenu.qml, DummyAppItemMenu.qml, SideBar.qml) so that context menus render as independent top-level windows instead of in-item overlays, fixing the issue where menus are clipped by the launcher window boundary. This change is scoped to dde-launchpad only and does not modify shared dtkdeclarative components, avoiding risk to other DTK applications. --- qml/AppItemMenu.qml | 1 + qml/DummyAppItemMenu.qml | 1 + qml/windowed/SideBar.qml | 1 + 3 files changed, 3 insertions(+) diff --git a/qml/AppItemMenu.qml b/qml/AppItemMenu.qml index 1fa073bb..6c666709 100644 --- a/qml/AppItemMenu.qml +++ b/qml/AppItemMenu.qml @@ -30,6 +30,7 @@ Loader { Menu { id: contextMenu objectName: "ContextMenu" + popupType: Popup.Window topMargin: isFullscreen && DesktopIntegration.dockPosition === Qt.UpArrow ? dockSpacing : 0 bottomMargin: isFullscreen && DesktopIntegration.dockPosition === Qt.DownArrow ? dockSpacing : 0 diff --git a/qml/DummyAppItemMenu.qml b/qml/DummyAppItemMenu.qml index 66a9d4da..14ada26e 100644 --- a/qml/DummyAppItemMenu.qml +++ b/qml/DummyAppItemMenu.qml @@ -24,6 +24,7 @@ Loader { Menu { id: contextMenu objectName: "ContextMenu_2" + popupType: Popup.Window topMargin: isFullscreen && DesktopIntegration.dockPosition === Qt.UpArrow ? dockSpacing : 0 bottomMargin: isFullscreen && DesktopIntegration.dockPosition === Qt.DownArrow ? dockSpacing : 0 leftMargin: isFullscreen && DesktopIntegration.dockPosition === Qt.LeftArrow ? dockSpacing : 0 diff --git a/qml/windowed/SideBar.qml b/qml/windowed/SideBar.qml index f95d1cc5..d2a82cac 100644 --- a/qml/windowed/SideBar.qml +++ b/qml/windowed/SideBar.qml @@ -36,6 +36,7 @@ ColumnLayout { D.Menu { id: categorizedMenu objectName: "CategorizedMenu" + popupType: Popup.Window D.MenuItem { text: qsTr("Free sorting")