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:
Donald Guy 2021-08-18 19:05:45 -04:00
parent a61fae9621
commit 4fafebb542
6 changed files with 18 additions and 16 deletions

View file

@ -271,16 +271,14 @@ void bar_create_frame(struct bar *bar, CFTypeRef *frame_region)
CGRect bounds = display_bounds(bar->did); CGRect bounds = display_bounds(bar->did);
CGPoint origin = bounds.origin; 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); CGRect menu = display_manager_menu_bar_rect(bar->did);
origin.y += menu.size.height; 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->frame = (CGRect) {{0, 0},{bounds.size.width, g_bar_manager.height}};
bar->origin = origin; bar->origin = origin;
CGSNewRegionWithRect(&bar->frame, frame_region); CGSNewRegionWithRect(&bar->frame, frame_region);

View file

@ -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) { void bar_item_on_click(struct bar_item* bar_item) {
printf("%s \n", bar_item->name); if (bar_item && strlen(bar_item->on_click_script) > 0)
if (strcmp(bar_item->on_click_script, "") != 0)
fork_exec(bar_item->on_click_script, NULL); fork_exec(bar_item->on_click_script, NULL);
} }

View file

@ -106,11 +106,11 @@ uint32_t display_manager_last_display_id(void)
return display_manager_arrangement_display_id(arrangement); return display_manager_arrangement_display_id(arrangement);
} }
bool display_manager_menu_bar_hidden(void) bool display_manager_menu_bar_visible(void)
{ {
int status = 0; int status = 0;
SLSGetMenuBarAutohideEnabled(g_connection, &status); SLSGetMenuBarAutohideEnabled(g_connection, &status);
return status; return !status;
} }
CGRect display_manager_menu_bar_rect(uint32_t did) CGRect display_manager_menu_bar_rect(uint32_t did)

View file

@ -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_next_display_id(uint32_t did);
uint32_t display_manager_first_display_id(void); uint32_t display_manager_first_display_id(void);
uint32_t display_manager_last_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); CGRect display_manager_menu_bar_rect(uint32_t did);
bool display_manager_dock_hidden(void); bool display_manager_dock_hidden(void);
int display_manager_dock_orientation(void); int display_manager_dock_orientation(void);

View file

@ -256,12 +256,11 @@ static EVENT_CALLBACK(EVENT_HANDLER_MOUSE_DOWN) {
static EVENT_CALLBACK(EVENT_HANDLER_MOUSE_UP) static EVENT_CALLBACK(EVENT_HANDLER_MOUSE_UP)
{ {
CGPoint point = CGEventGetLocation(context); CGPoint point = CGEventGetLocation(context);
printf("Mouse Up Event \n");
uint32_t sid = mission_control_index(display_space_id(display_manager_active_display_id())); 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); 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); debug("item: %s\n", bar_item ? bar_item->name : "NULL");
else { printf("No item found \n"); } bar_item_on_click(bar_item);
return EVENT_SUCCESS; return EVENT_SUCCESS;
} }

View file

@ -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); 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)) { } 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 { else {
daemon_fail(rsp, "unknown command '%.*s' for domain '%.*s'\n", command.length, command.text, domain.length, domain.text); daemon_fail(rsp, "unknown command '%.*s' for domain '%.*s'\n", command.length, command.text, domain.length, domain.text);