mirror of
https://github.com/FelixKratz/SketchyBar
synced 2025-02-17 13:08:28 +00:00
only refresh bar on demand
This commit is contained in:
parent
58683ba4c2
commit
e25c8b5af2
5 changed files with 5 additions and 24 deletions
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
12
src/event.c
12
src/event.c
|
@ -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);
|
||||
|
|
|
@ -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,
|
||||
};
|
||||
|
|
|
@ -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>
|
||||
|
|
Loading…
Add table
Reference in a new issue