mirror of
https://github.com/zoriya/noctalia-shell.git
synced 2026-08-15 18:43:59 +00:00
Feat: Freeze the notifications when hovering
This commit is contained in:
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user