diff --git a/containments/homescreens/folio/qml/AppDrawer.qml b/containments/homescreens/folio/qml/AppDrawer.qml index b4a54fb1..54382ec2 100644 --- a/containments/homescreens/folio/qml/AppDrawer.qml +++ b/containments/homescreens/folio/qml/AppDrawer.qml @@ -36,13 +36,6 @@ Item { // Convergence popup background readonly property bool isPopup: ShellSettings.Settings.convergenceModeEnabled - Rectangle { - visible: root.isPopup - anchors.fill: parent - radius: 0 - color: Kirigami.Theme.backgroundColor - } - // Keyboard navigation Keys.onPressed: (event) => { if (event.key === Qt.Key_Escape || event.key === Qt.Key_Back) { diff --git a/containments/homescreens/folio/qml/CategoryPanel.qml b/containments/homescreens/folio/qml/CategoryPanel.qml index eeaa7034..8626295a 100644 --- a/containments/homescreens/folio/qml/CategoryPanel.qml +++ b/containments/homescreens/folio/qml/CategoryPanel.qml @@ -17,7 +17,7 @@ Rectangle { // Emitted when the user taps a tile. signal categorySelected(string categoryId) - color: Kirigami.Theme.backgroundColor + color: "transparent" radius: 0 // Swallow clicks so the dismiss area underneath is not triggered. diff --git a/containments/homescreens/folio/qml/RunningAppsPanel.qml b/containments/homescreens/folio/qml/RunningAppsPanel.qml index dc8ad023..151008e9 100644 --- a/containments/homescreens/folio/qml/RunningAppsPanel.qml +++ b/containments/homescreens/folio/qml/RunningAppsPanel.qml @@ -125,7 +125,7 @@ Item { id: panelBackground anchors.fill: parent radius: 0 - color: Kirigami.Theme.backgroundColor + color: "transparent" } MouseArea { diff --git a/containments/homescreens/folio/qml/main.qml b/containments/homescreens/folio/qml/main.qml index 1923b573..634f548d 100644 --- a/containments/homescreens/folio/qml/main.qml +++ b/containments/homescreens/folio/qml/main.qml @@ -517,7 +517,7 @@ ContainmentItem { y: overlayDrawer.y opacity: overlayDrawer.opacity radius: 0 - color: Kirigami.Theme.backgroundColor + color: "transparent" MouseArea { anchors.fill: parent @@ -755,6 +755,41 @@ ContainmentItem { onTaskActivated: folio.HomeScreenState.closeAppDrawer() } + + Shape { + id: drawerSurface + x: overlayDrawer.x + y: overlayDrawer.y + width: bodyWidth + cornerRadius + height: overlayDrawer.popupHeight + opacity: overlayDrawer.opacity + visible: opacity > 0 && bodyWidth > 0 && height > 0 + z: -1 + preferredRendererType: Shape.CurveRenderer + asynchronous: true + enabled: false + + readonly property real bodyWidth: Math.max(0, powerPanel.x + powerPanel.width - overlayDrawer.x) + readonly property real cornerRadius: Math.min(MobileShell.Constants.convergenceWorkspaceFrameRadius, + Math.max(0.01, Math.min(bodyWidth, height) / 2)) + + ShapePath { + id: drawerSurfacePath + readonly property real cornerRadius: drawerSurface.cornerRadius + + fillColor: Kirigami.Theme.backgroundColor + strokeWidth: 0 + startX: 0 + startY: 0 + + PathLine { x: drawerSurface.bodyWidth + drawerSurfacePath.cornerRadius; y: 0 } + PathArc { x: drawerSurface.bodyWidth; y: drawerSurfacePath.cornerRadius; radiusX: drawerSurfacePath.cornerRadius; radiusY: drawerSurfacePath.cornerRadius; direction: PathArc.Counterclockwise } + PathLine { x: drawerSurface.bodyWidth; y: drawerSurface.height - drawerSurfacePath.cornerRadius } + PathArc { x: drawerSurface.bodyWidth + drawerSurfacePath.cornerRadius; y: drawerSurface.height; radiusX: drawerSurfacePath.cornerRadius; radiusY: drawerSurfacePath.cornerRadius; direction: PathArc.Counterclockwise } + PathLine { x: 0; y: drawerSurface.height } + PathLine { x: 0; y: 0 } + } + } } // Game Center overlay — full-screen grid of games shown when gaming mode