From b044fd156d4f24d591babcc665ffef1cd3cc0e39 Mon Sep 17 00:00:00 2001 From: Marco Martin Date: Thu, 25 Feb 2021 18:01:57 +0100 Subject: [PATCH] fix horizontal scrolling of applets try harder to not have the applet outside of boundaries --- .../panel/package/contents/ui/FullContainer.qml | 11 +++++++++-- containments/panel/package/contents/ui/main.qml | 8 ++++---- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/containments/panel/package/contents/ui/FullContainer.qml b/containments/panel/package/contents/ui/FullContainer.qml index 178e3c58..9e5b4649 100644 --- a/containments/panel/package/contents/ui/FullContainer.qml +++ b/containments/panel/package/contents/ui/FullContainer.qml @@ -34,6 +34,7 @@ DrawerBackground { Layout.minimumHeight: applet && applet.switchHeight onShouldBeVisibleChanged: fullContainer.visible = fullContainer.shouldBeVisible + Component.onCompleted: visibleChanged(); onVisibleChanged: { if (visible) { for (var i = 0; i < fullRepresentationModel.count; ++i) { @@ -45,7 +46,7 @@ DrawerBackground { fullRepresentationView.forceLayout(); fullRepresentationView.currentIndex = ObjectModel.index; - fullRepresentationView.positionViewAtIndex(ObjectModel.index, ListView.SnapPosition) + fullRepresentationView.positionViewAtIndex(ObjectModel.index, ListView.Contain) } else if (ObjectModel.index >= 0) { fullRepresentationModel.remove(ObjectModel.index); fullRepresentationView.forceLayout(); @@ -56,11 +57,17 @@ DrawerBackground { } Connections { target: fullContainer.applet - onActivated: { + function onActivated() { if (!visible) { return; } fullRepresentationView.currentIndex = ObjectModel.index; } } + Connections { + target: fullContainer.applet.fullRepresentationItem + function onParentChanged() { + fullContainer.applet.fullRepresentationItem.parent = fullContainer; + } + } } diff --git a/containments/panel/package/contents/ui/main.qml b/containments/panel/package/contents/ui/main.qml index d68aba6b..aa6bf89b 100644 --- a/containments/panel/package/contents/ui/main.qml +++ b/containments/panel/package/contents/ui/main.qml @@ -266,7 +266,7 @@ Item { anchors.fill: parent onPressed: { slidingPanel.cancelAnimations(); - slidingPanel.drawerX = Math.min(Math.max(0, mouse.x - slidingPanel.drawerWidth/2), slidingPanel.width - slidingPanel.drawerWidth) + slidingPanel.drawerX = Math.min(Math.max(0, mouse.x - slidingPanel.drawerWidth/2), slidingPanel.width - slidingPanel.contentItem.width) slidingPanel.userInteracting = true; oldMouseY = mouse.y; slidingPanel.offset = 0//units.gridUnit * 2; @@ -295,7 +295,7 @@ Item { onClosed: quickSettings.closed() contentItem: Item { - implicitWidth: quickSettingsParent.implicitWidth + implicitWidth: panelContents.implicitWidth implicitHeight: Math.min(slidingPanel.height, quickSettingsParent.implicitHeight) GridLayout { id: panelContents @@ -325,7 +325,7 @@ Item { z: 1 interactive: width < contentWidth //parent: slidingPanel.wideScreen ? slidingPanel.flickable.contentItem : panelContents - Layout.preferredWidth: slidingPanel.wideScreen ? Math.min(slidingPanel.width/2, quickSettingsParent.width*fullRepresentationModel.count) : panelContents.width + Layout.preferredWidth: slidingPanel.wideScreen ? Math.min(slidingPanel.width - quickSettingsParent.width, quickSettingsParent.width*fullRepresentationModel.count) : panelContents.width //Layout.fillWidth: true clip: slidingPanel.wideScreen y: slidingPanel.wideScreen ? 0 : quickSettingsParent.height - height * (1-opacity) @@ -333,7 +333,7 @@ Item { height: Math.min(plasmoid.screenGeometry.height - slidingPanel.headerHeight - quickSettingsParent.height - bottomBar.height, implicitHeight) //leftMargin: slidingPanel.drawerX preferredHighlightBegin: slidingPanel.drawerX - + implicitHeight: units.gridUnit * 20 cacheBuffer: width * 100 highlightFollowsCurrentItem: true