refactor: move popout position logic to wrapper

This commit is contained in:
2 * r + 2 * t 2026-04-08 19:35:57 +10:00
parent eaa6aefa6c
commit e1e0c314c6
2 changed files with 14 additions and 12 deletions

View file

@ -9,6 +9,7 @@ Item {
id: root
required property ShellScreen screen
required property real borderThickness
readonly property alias content: content
property real offsetScale: x > 0 || content.hasCurrent ? 0 : 1
@ -19,6 +20,18 @@ Item {
implicitWidth: content.implicitWidth * (1 - offsetScale)
implicitHeight: content.implicitHeight
x: content.isDetached ? (parent.width - content.nonAnimWidth) / 2 : 0
y: {
if (content.isDetached)
return (parent.height - content.nonAnimHeight) / 2;
const off = content.currentCenter - borderThickness - content.nonAnimHeight / 2;
const diff = parent.height - Math.floor(off + content.nonAnimHeight);
if (diff < 0)
return off + diff;
return Math.max(off, 0);
}
Behavior on offsetScale {
Anim {
duration: Appearance.anim.durations.expressiveDefaultSpatial

View file

@ -119,18 +119,7 @@ Item {
id: popoutsWrapper
screen: root.screen
x: content.isDetached ? (root.width - content.nonAnimWidth) / 2 : 0
y: {
if (content.isDetached)
return (root.height - content.nonAnimHeight) / 2;
const off = content.currentCenter - root.borderThickness - content.nonAnimHeight / 2;
const diff = root.height - Math.floor(off + content.nonAnimHeight);
if (diff < 0)
return off + diff;
return Math.max(off, 0);
}
borderThickness: root.borderThickness
}
Utilities.Wrapper {