bar: ensure popouts fully on screen
Also round the other way if touching edge
This commit is contained in:
parent
2ffaf4eb3c
commit
be9666457c
3 changed files with 12 additions and 3 deletions
|
|
@ -7,6 +7,7 @@ ShapePath {
|
|||
id: root
|
||||
|
||||
required property Wrapper wrapper
|
||||
required property bool invertBottomRounding
|
||||
readonly property real rounding: BorderConfig.rounding
|
||||
readonly property bool flatten: wrapper.width < rounding * 2
|
||||
readonly property real roundingX: flatten ? wrapper.width / 2 : rounding
|
||||
|
|
@ -36,13 +37,14 @@ ShapePath {
|
|||
relativeY: root.wrapper.height - root.rounding * 4
|
||||
}
|
||||
PathArc {
|
||||
relativeX: -root.roundingX
|
||||
relativeX: root.invertBottomRounding ? root.roundingX : -root.roundingX
|
||||
relativeY: root.rounding
|
||||
radiusX: Math.min(root.rounding, root.wrapper.width)
|
||||
radiusY: root.rounding
|
||||
direction: root.invertBottomRounding ? PathArc.Counterclockwise : PathArc.Clockwise
|
||||
}
|
||||
PathLine {
|
||||
relativeX: -(root.wrapper.width - root.roundingX * 2)
|
||||
relativeX: -(root.wrapper.width - root.roundingX * (root.invertBottomRounding ? 0 : 2))
|
||||
relativeY: 0
|
||||
}
|
||||
PathArc {
|
||||
|
|
|
|||
|
|
@ -55,6 +55,7 @@ Shape {
|
|||
|
||||
BarPopouts.Background {
|
||||
wrapper: panels.popouts
|
||||
invertBottomRounding: wrapper.y + wrapper.height - BorderConfig.rounding >= root.height
|
||||
|
||||
startX: 0
|
||||
startY: wrapper.y
|
||||
|
|
|
|||
|
|
@ -80,6 +80,12 @@ Item {
|
|||
|
||||
anchors.left: parent.left
|
||||
anchors.verticalCenter: parent.top
|
||||
anchors.verticalCenterOffset: Popouts.currentCenter - BorderConfig.thickness
|
||||
anchors.verticalCenterOffset: {
|
||||
const off = Popouts.currentCenter - BorderConfig.thickness;
|
||||
const diff = root.height - Math.floor(off + implicitHeight / 2 - BorderConfig.rounding);
|
||||
if (diff < 0)
|
||||
return off + diff;
|
||||
return off;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue