feat(tray): Implement debouncing for tray item updates

This commit is contained in:
loner
2025-10-10 07:17:11 +08:00
parent 1455c84b0c
commit 20c54e292f
+16 -1
View File
@@ -65,7 +65,18 @@ Rectangle {
}
}
function updateFilteredItems() {
// Debounce timer for updateFilteredItems to prevent excessive calls
// when multiple events (e.g., SystemTray changes, settings saves)
// trigger it in rapid succession, reducing redundant processing.
Timer {
id: updateDebounceTimer
interval: 100 // milliseconds
running: false
repeat: false
onTriggered: _performFilteredItemsUpdate()
}
function _performFilteredItemsUpdate() {
if (!root.blacklist || root.blacklist.length === 0) {
if (SystemTray.items && SystemTray.items.values) {
filteredItems = SystemTray.items.values
@@ -103,6 +114,10 @@ Rectangle {
filteredItems = newItems
}
function updateFilteredItems() {
updateDebounceTimer.restart()
}
function onLoaded() {
// When the widget is fully initialized with its props set the screen for the trayMenu
if (trayMenu.item) {