Compare commits

..

2 commits

Author SHA1 Message Date
Damocles
427aeb438c edge groups: uniform gap to gradient arc on all sides 2026-04-13 15:58:47 +02:00
Damocles
2c5cf8c174 animate popup auto-expire: swipe out instead of instant vanish 2026-04-13 15:56:31 +02:00
3 changed files with 14 additions and 3 deletions

View file

@ -97,8 +97,8 @@ PanelWindow {
Item { Item {
anchors.fill: parent anchors.fill: parent
anchors.topMargin: 3 anchors.topMargin: 3
anchors.leftMargin: Math.max(M.Theme.barPadding, M.Theme.screenRadius) anchors.leftMargin: 6
anchors.rightMargin: Math.max(M.Theme.barPadding, M.Theme.screenRadius) anchors.rightMargin: 6
// ---- center (declared first so left/right can anchor to it) ---- // ---- center (declared first so left/right can anchor to it) ----
RowLayout { RowLayout {

View file

@ -63,6 +63,14 @@ PanelWindow {
_entered = true; _entered = true;
} }
Connections {
target: M.NotifService
function onPopupExpiring(notifId) {
if (notifId === popupItem.modelData.id)
popupItem.animateDismiss(false);
}
}
Behavior on y { Behavior on y {
enabled: popupItem._entered enabled: popupItem._entered
NumberAnimation { NumberAnimation {

View file

@ -105,12 +105,15 @@ QtObject {
} }
} }
// Signal popups to animate out before removal
signal popupExpiring(var notifId)
property Component _expireTimer: Component { property Component _expireTimer: Component {
Timer { Timer {
property var _notifId property var _notifId
running: true running: true
onTriggered: { onTriggered: {
root.dismissPopup(_notifId); root.popupExpiring(_notifId);
destroy(); destroy();
} }
} }