only refresh bar on demand

This commit is contained in:
FelixKratz 2021-08-22 23:09:35 +02:00
parent 58683ba4c2
commit e25c8b5af2
5 changed files with 5 additions and 24 deletions

View file

@ -43,7 +43,6 @@ struct bar
uint32_t id;
uint32_t did;
CGContextRef context;
CFRunLoopTimerRef refresh_timer;
CFRunLoopTimerRef shell_refresh_timer;
CGRect frame;
CGPoint origin;

View file

@ -3,12 +3,6 @@
extern struct event_loop g_event_loop;
static TIMER_CALLBACK(timer_handler)
{
struct event *event = event_create(&g_event_loop, BAR_REFRESH, NULL);
event_loop_post(&g_event_loop, event);
}
static SHELL_TIMER_CALLBACK(shell_timer_handler)
{
struct event *event = event_create(&g_event_loop, SHELL_REFRESH, NULL);
@ -106,12 +100,8 @@ void bar_manager_init(struct bar_manager *bar_manager)
bar_item_init(&bar_manager->default_item, NULL);
int refresh_frequency = 1;
int shell_refresh_frequency = 1;
bar_manager->refresh_timer = CFRunLoopTimerCreate(NULL, CFAbsoluteTimeGetCurrent() + refresh_frequency, refresh_frequency, 0, 0, timer_handler, NULL);
CFRunLoopAddTimer(CFRunLoopGetMain(), bar_manager->refresh_timer, kCFRunLoopCommonModes);
bar_manager->shell_refresh_timer = CFRunLoopTimerCreate(NULL, CFAbsoluteTimeGetCurrent() + shell_refresh_frequency, shell_refresh_frequency, 0, 0, shell_timer_handler, NULL);
CFRunLoopAddTimer(CFRunLoopGetMain(), bar_manager->shell_refresh_timer, kCFRunLoopCommonModes);
}

View file

@ -117,7 +117,7 @@ static EVENT_CALLBACK(EVENT_HANDLER_APPLICATION_FRONT_SWITCHED)
{
debug("%s\n", __FUNCTION__);
bar_manager_handle_front_app_switch(&g_bar_manager);
bar_manager_refresh(&g_bar_manager);
//bar_manager_refresh(&g_bar_manager);
return EVENT_SUCCESS;
}
@ -127,7 +127,7 @@ static EVENT_CALLBACK(EVENT_HANDLER_WINDOW_FOCUSED)
debug("%s\n", __FUNCTION__);
bar_manager_handle_window_focus(&g_bar_manager);
bar_manager_refresh(&g_bar_manager);
//bar_manager_refresh(&g_bar_manager);
return EVENT_SUCCESS;
}
@ -138,7 +138,7 @@ static EVENT_CALLBACK(EVENT_HANDLER_WINDOW_TITLE_CHANGED)
// TODO: we can optimize by checking if it the focused window
bar_manager_handle_title_change(&g_bar_manager);
bar_manager_refresh(&g_bar_manager);
//bar_manager_refresh(&g_bar_manager);
return EVENT_SUCCESS;
}
@ -213,12 +213,6 @@ static EVENT_CALLBACK(EVENT_HANDLER_SYSTEM_WOKE)
return EVENT_SUCCESS;
}
static EVENT_CALLBACK(EVENT_HANDLER_BAR_REFRESH)
{
bar_manager_refresh(&g_bar_manager);
return EVENT_SUCCESS;
}
static EVENT_CALLBACK(EVENT_HANDLER_SHELL_REFRESH)
{
bar_manager_script_update(&g_bar_manager, false);

View file

@ -17,7 +17,6 @@ static EVENT_CALLBACK(EVENT_HANDLER_DISPLAY_RESIZED);
static EVENT_CALLBACK(EVENT_HANDLER_DISPLAY_CHANGED);
static EVENT_CALLBACK(EVENT_HANDLER_MENU_BAR_HIDDEN_CHANGED);
static EVENT_CALLBACK(EVENT_HANDLER_SYSTEM_WOKE);
static EVENT_CALLBACK(EVENT_HANDLER_BAR_REFRESH);
static EVENT_CALLBACK(EVENT_HANDLER_SHELL_REFRESH);
static EVENT_CALLBACK(EVENT_HANDLER_DAEMON_MESSAGE);
static EVENT_CALLBACK(EVENT_HANDLER_MOUSE_UP);
@ -48,7 +47,6 @@ enum event_type
DISPLAY_CHANGED,
MENU_BAR_HIDDEN_CHANGED,
SYSTEM_WOKE,
BAR_REFRESH,
SHELL_REFRESH,
DAEMON_MESSAGE,
MOUSE_UP,
@ -73,7 +71,6 @@ static const char *event_type_str[] =
[DISPLAY_CHANGED] = "display_changed",
[MENU_BAR_HIDDEN_CHANGED] = "menu_bar_hidden_changed",
[SYSTEM_WOKE] = "system_woke",
[BAR_REFRESH] = "bar_refresh",
[SHELL_REFRESH] = "shell_refresh",
[DAEMON_MESSAGE] = "daemon_message",
[MOUSE_UP] = "mouse_up",
@ -98,7 +95,6 @@ static event_callback *event_handler[] =
[MENU_BAR_HIDDEN_CHANGED] = EVENT_HANDLER_MENU_BAR_HIDDEN_CHANGED,
[SYSTEM_WOKE] = EVENT_HANDLER_SYSTEM_WOKE,
[BAR_REFRESH] = EVENT_HANDLER_BAR_REFRESH,
[SHELL_REFRESH] = EVENT_HANDLER_SHELL_REFRESH,
[DAEMON_MESSAGE] = EVENT_HANDLER_DAEMON_MESSAGE,
};

View file

@ -237,6 +237,8 @@ static void handle_domain_push(FILE* rsp, struct token domain, char* message) {
if (item_index_for_name < 0) return;
struct bar_item* bar_item = g_bar_manager.bar_items[item_index_for_name];
graph_data_push_back(&bar_item->graph_data, token_to_float(y));
if (bar_item->is_shown)
bar_manager_refresh(&g_bar_manager);
}
// Syntax: sketchybar -m add <item|component|plugin> (<identifier>) <name> <position>