From 052122389909832810c2e8bae3ef6f44d1f8b8b4 Mon Sep 17 00:00:00 2001 From: o9000 Date: Fri, 17 Nov 2017 08:19:23 +0100 Subject: [PATCH] Taskbar: thumbnails (interleave slow periodic throttling with event processing) --- src/taskbar/taskbar.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/taskbar/taskbar.c b/src/taskbar/taskbar.c index 81df2a8..31c0448 100644 --- a/src/taskbar/taskbar.c +++ b/src/taskbar/taskbar.c @@ -797,6 +797,7 @@ void taskbar_update_thumbnails(void *fast) { if (!panel_config.g_task.thumbnail_enabled) return; + double start_time = get_time(); change_timeout(&thumbnail_update_timer, 10 * 1000, 10 * 1000, taskbar_update_thumbnails, NULL); for (int i = 0; i < num_panels; i++) { Panel *panel = &panels[i]; @@ -806,6 +807,13 @@ void taskbar_update_thumbnails(void *fast) Task *t = (Task *)c->data; if (!fast || t->current_state == TASK_ACTIVE) task_refresh_thumbnail(t); + if (!fast) { + double now = get_time(); + if (now - start_time > 0.030) { + change_timeout(&thumbnail_update_timer, 10, 10 * 1000, taskbar_update_thumbnails, fast); + return; + } + } } } }