mirror of
https://github.com/FelixKratz/SketchyBar
synced 2024-09-21 14:31:56 +00:00
Only factor in menu-bar height for top bar
use log.c facility for EVENT_HANDLER_MOUSE_UP log/printf
This commit is contained in:
parent
a61fae9621
commit
4fafebb542
6 changed files with 18 additions and 16 deletions
10
src/bar.c
10
src/bar.c
|
@ -271,16 +271,14 @@ void bar_create_frame(struct bar *bar, CFTypeRef *frame_region)
|
|||
CGRect bounds = display_bounds(bar->did);
|
||||
CGPoint origin = bounds.origin;
|
||||
|
||||
if (!display_manager_menu_bar_hidden()) {
|
||||
|
||||
if (0 == strcmp(g_bar_manager.position, BAR_POSITION_BOTTOM)) {
|
||||
origin.y = CGRectGetMaxY(bounds) - g_bar_manager.height;
|
||||
} else if (display_manager_menu_bar_visible()) {
|
||||
CGRect menu = display_manager_menu_bar_rect(bar->did);
|
||||
origin.y += menu.size.height;
|
||||
}
|
||||
|
||||
CGFloat display_bottom = CGRectGetMaxY(bounds);
|
||||
if (strcmp(g_bar_manager.position, BAR_POSITION_BOTTOM) == 0) {
|
||||
origin.y = display_bottom - g_bar_manager.height;
|
||||
}
|
||||
|
||||
bar->frame = (CGRect) {{0, 0},{bounds.size.width, g_bar_manager.height}};
|
||||
bar->origin = origin;
|
||||
CGSNewRegionWithRect(&bar->frame, frame_region);
|
||||
|
|
|
@ -127,8 +127,7 @@ void bar_item_set_label_font(struct bar_item* bar_item, char *font_string) {
|
|||
}
|
||||
|
||||
void bar_item_on_click(struct bar_item* bar_item) {
|
||||
printf("%s \n", bar_item->name);
|
||||
if (strcmp(bar_item->on_click_script, "") != 0)
|
||||
if (bar_item && strlen(bar_item->on_click_script) > 0)
|
||||
fork_exec(bar_item->on_click_script, NULL);
|
||||
}
|
||||
|
||||
|
|
|
@ -106,11 +106,11 @@ uint32_t display_manager_last_display_id(void)
|
|||
return display_manager_arrangement_display_id(arrangement);
|
||||
}
|
||||
|
||||
bool display_manager_menu_bar_hidden(void)
|
||||
bool display_manager_menu_bar_visible(void)
|
||||
{
|
||||
int status = 0;
|
||||
SLSGetMenuBarAutohideEnabled(g_connection, &status);
|
||||
return status;
|
||||
return !status;
|
||||
}
|
||||
|
||||
CGRect display_manager_menu_bar_rect(uint32_t did)
|
||||
|
|
|
@ -33,7 +33,7 @@ uint32_t display_manager_prev_display_id(uint32_t did);
|
|||
uint32_t display_manager_next_display_id(uint32_t did);
|
||||
uint32_t display_manager_first_display_id(void);
|
||||
uint32_t display_manager_last_display_id(void);
|
||||
bool display_manager_menu_bar_hidden(void);
|
||||
bool display_manager_menu_bar_visible(void);
|
||||
CGRect display_manager_menu_bar_rect(uint32_t did);
|
||||
bool display_manager_dock_hidden(void);
|
||||
int display_manager_dock_orientation(void);
|
||||
|
|
|
@ -256,12 +256,11 @@ static EVENT_CALLBACK(EVENT_HANDLER_MOUSE_DOWN) {
|
|||
static EVENT_CALLBACK(EVENT_HANDLER_MOUSE_UP)
|
||||
{
|
||||
CGPoint point = CGEventGetLocation(context);
|
||||
printf("Mouse Up Event \n");
|
||||
uint32_t sid = mission_control_index(display_space_id(display_manager_active_display_id()));
|
||||
printf("sid: %i \n", sid);
|
||||
debug("EVENT_HANDLER_MOUSE_UP: S#%d (x: %.0f, y: %.0f) -> ", sid, point.x, point.y);
|
||||
struct bar_item* bar_item = bar_manager_get_item_by_point(&g_bar_manager, point, sid);
|
||||
if (bar_item) bar_item_on_click(bar_item);
|
||||
else { printf("No item found \n"); }
|
||||
debug("item: %s\n", bar_item ? bar_item->name : "NULL");
|
||||
bar_item_on_click(bar_item);
|
||||
|
||||
return EVENT_SUCCESS;
|
||||
}
|
||||
|
|
|
@ -371,7 +371,13 @@ static void handle_domain_config(FILE *rsp, struct token domain, char *message)
|
|||
daemon_fail(rsp, "value for '%.*s' must be either 'main' or 'all'.\n", command.length, command.text);
|
||||
}
|
||||
} else if (token_equals(command, COMMAND_CONFIG_BAR_POSITION)) {
|
||||
bar_manager_set_position(&g_bar_manager, string_copy(message));
|
||||
if (strlen(message) <= 0) {
|
||||
fprintf(rsp, "%s\n", g_bar_manager.position);
|
||||
} else if (strcmp(message, BAR_POSITION_TOP) != 0 && strcmp(message, BAR_POSITION_BOTTOM) != 0) {
|
||||
daemon_fail(rsp, "value for '%.*s' must be either '%s' or '%s'.\n", command.length, command.text, BAR_POSITION_TOP, BAR_POSITION_BOTTOM);
|
||||
} else {
|
||||
bar_manager_set_position(&g_bar_manager, string_copy(message));
|
||||
}
|
||||
}
|
||||
else {
|
||||
daemon_fail(rsp, "unknown command '%.*s' for domain '%.*s'\n", command.length, command.text, domain.length, domain.text);
|
||||
|
|
Loading…
Reference in a new issue