Feat: Freeze the notifications when hovering

This commit is contained in:
amadoabad
2025-10-17 01:57:27 +03:00
parent 838491ba33
commit b0f6f22b2d
2 changed files with 29 additions and 2 deletions
+20 -2
View File
@@ -111,7 +111,9 @@ Singleton {
notificationMetadata[data.id] = {
"timestamp": data.timestamp.getTime(),
"duration": expire,
"urgency": data.urgency
"urgency": data.urgency,
"paused": false,
"pauseTime": 0
}
activeList.insert(0, data)
@@ -219,7 +221,7 @@ Singleton {
const notif = activeList.get(i)
const meta = notificationMetadata[notif.id]
if (!meta || meta.duration === -1)
if (!meta || meta.duration === -1 || meta.paused)
continue
// Skip infinite notifications
@@ -408,6 +410,22 @@ Singleton {
return ""
}
function pauseTimeout(id) {
const meta = notificationMetadata[id]
if (meta && !meta.paused) {
meta.paused = true
meta.pauseTime = Date.now()
}
}
function resumeTimeout(id) {
const meta = notificationMetadata[id]
if (meta && meta.paused) {
meta.timestamp += Date.now() - meta.pauseTime
meta.paused = false
}
}
// Public API
function dismissActiveNotification(id) {
activeMap[id]?.dismiss()