aboutsummaryrefslogtreecommitdiff
path: root/swaybar
diff options
context:
space:
mode:
Diffstat (limited to 'swaybar')
-rw-r--r--swaybar/bar.c2
-rw-r--r--swaybar/tray/tray.c6
2 files changed, 7 insertions, 1 deletions
diff --git a/swaybar/bar.c b/swaybar/bar.c
index f12923a8..9cd17303 100644
--- a/swaybar/bar.c
+++ b/swaybar/bar.c
@@ -247,6 +247,8 @@ void bar_setup(struct bar *bar, const char *socket_path, const char *bar_id) {
/* set window height */
set_window_height(bar_output->window, bar->config->height);
+
+ bar_output->state = output;
}
/* spawn status command */
spawn_status_cmd_proc(bar);
diff --git a/swaybar/tray/tray.c b/swaybar/tray/tray.c
index e926faae..924ff1a0 100644
--- a/swaybar/tray/tray.c
+++ b/swaybar/tray/tray.c
@@ -432,9 +432,13 @@ err:
return -1;
}
-void tray_mouse_event(struct output *output, int x, int y,
+void tray_mouse_event(struct output *output, int rel_x, int rel_y,
uint32_t button, uint32_t state) {
+ int x = rel_x;
+ int y = rel_y + (swaybar.config->position == DESKTOP_SHELL_PANEL_POSITION_TOP
+ ? 0 : (output->state->height - output->window->height));
+
struct window *window = output->window;
uint32_t tray_padding = swaybar.config->tray_padding;
int tray_width = window->width * window->scale;