show screen corners on lock screen when enabled

This commit is contained in:
Damocles 2026-04-17 22:59:46 +02:00
parent 5a5bbc5811
commit 63e93f5de0

View file

@ -349,4 +349,71 @@ WlSessionLockSurface {
_shakeAnim.restart();
}
}
// Screen corners - session lock surfaces render above all layer-shell,
// so the bar's ScreenCorners aren't visible. Draw our own.
component LockCorner: Canvas {
property int corner: 0
readonly property int _r: M.Theme.screenRadius
visible: _r > 0 && M.Modules.screenCorners.enable
width: _r
height: _r
z: 999
onPaint: {
const r = _r;
const ctx = getContext("2d");
ctx.clearRect(0, 0, r, r);
ctx.fillStyle = "black";
ctx.beginPath();
switch (corner) {
case 0:
ctx.moveTo(0, 0);
ctx.lineTo(r, 0);
ctx.arc(r, r, r, -Math.PI / 2, Math.PI, true);
ctx.closePath();
break;
case 1:
ctx.moveTo(r, 0);
ctx.lineTo(0, 0);
ctx.arc(0, r, r, -Math.PI / 2, 0, false);
ctx.closePath();
break;
case 2:
ctx.moveTo(0, r);
ctx.lineTo(0, 0);
ctx.arc(r, 0, r, Math.PI, Math.PI / 2, true);
ctx.closePath();
break;
case 3:
ctx.moveTo(r, r);
ctx.lineTo(r, 0);
ctx.arc(0, 0, r, 0, Math.PI / 2, false);
ctx.closePath();
break;
}
ctx.fill();
}
}
LockCorner {
corner: 0
anchors.top: parent.top
anchors.left: parent.left
}
LockCorner {
corner: 1
anchors.top: parent.top
anchors.right: parent.right
}
LockCorner {
corner: 2
anchors.bottom: parent.bottom
anchors.left: parent.left
}
LockCorner {
corner: 3
anchors.bottom: parent.bottom
anchors.right: parent.right
}
}