From 3045ec107ff99c49d335acc621c4f8fe397a2abd Mon Sep 17 00:00:00 2001 From: Lea Anthony Date: Wed, 13 Jan 2021 20:47:08 +1100 Subject: [PATCH] attempt at preventing menu flicker when removing an icon --- v2/internal/ffenestri/traymenu_darwin.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/v2/internal/ffenestri/traymenu_darwin.c b/v2/internal/ffenestri/traymenu_darwin.c index 85f269d2e..c2afaffce 100644 --- a/v2/internal/ffenestri/traymenu_darwin.c +++ b/v2/internal/ffenestri/traymenu_darwin.c @@ -91,8 +91,16 @@ void UpdateTrayMenuIcon(TrayMenu *trayMenu) { return; } - id trayImage = hashmap_get(&trayIconCache, trayMenu->icon, strlen(trayMenu->icon)); id statusBarButton = msg(trayMenu->statusbaritem, s("button")); + + // Empty icon means remove it + if( STREMPTY(trayMenu->icon) ) { + // Remove image + msg(statusBarButton, s("setImage:"), NULL); + return; + } + + id trayImage = hashmap_get(&trayIconCache, trayMenu->icon, strlen(trayMenu->icon)); msg(statusBarButton, s("setImagePosition:"), trayMenu->trayIconPosition); msg(statusBarButton, s("setImage:"), trayImage); }