From 5f65f339896fadf0011b75d78c869594876d35d9 Mon Sep 17 00:00:00 2001 From: Ian Fan Date: Sun, 28 Oct 2018 10:25:47 +0000 Subject: swaybar: add tray interface --- swaybar/bar.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'swaybar/bar.c') diff --git a/swaybar/bar.c b/swaybar/bar.c index 53e798bc..c26e76ce 100644 --- a/swaybar/bar.c +++ b/swaybar/bar.c @@ -18,6 +18,9 @@ #include "swaybar/ipc.h" #include "swaybar/status_line.h" #include "swaybar/render.h" +#if HAVE_TRAY +#include "swaybar/tray/tray.h" +#endif #include "ipc-client.h" #include "list.h" #include "log.h" @@ -362,6 +365,10 @@ bool bar_setup(struct swaybar *bar, const char *socket_path) { pointer->cursor_surface = wl_compositor_create_surface(bar->compositor); assert(pointer->cursor_surface); +#if HAVE_TRAY + bar->tray = create_tray(bar); +#endif + if (bar->config->workspace_buttons) { ipc_get_workspaces(bar); } @@ -403,6 +410,11 @@ void bar_run(struct swaybar *bar) { loop_add_fd(bar->eventloop, bar->status->read_fd, POLLIN, status_in, bar); } +#if HAVE_TRAY + if (bar->tray) { + loop_add_fd(bar->eventloop, bar->tray->fd, POLLIN, tray_in, bar->tray->bus); + } +#endif while (1) { errno = 0; if (wl_display_flush(bar->display) == -1 && errno != EAGAIN) { @@ -420,6 +432,9 @@ static void free_outputs(struct wl_list *list) { } void bar_teardown(struct swaybar *bar) { +#if HAVE_TRAY + destroy_tray(bar->tray); +#endif free_outputs(&bar->outputs); if (bar->config) { free_config(bar->config); -- cgit v1.2.3 From 6b03c68775c9c638def342c82b1fa3beffa52645 Mon Sep 17 00:00:00 2001 From: Ian Fan Date: Sun, 9 Dec 2018 15:10:41 +0000 Subject: swaybar: implement tray config --- swaybar/bar.c | 1 + 1 file changed, 1 insertion(+) (limited to 'swaybar/bar.c') diff --git a/swaybar/bar.c b/swaybar/bar.c index c26e76ce..668168eb 100644 --- a/swaybar/bar.c +++ b/swaybar/bar.c @@ -11,6 +11,7 @@ #include #include #include +#include "config.h" #include "swaybar/bar.h" #include "swaybar/config.h" #include "swaybar/i3bar.h" -- cgit v1.2.3 From 6becde024680503100c94702ed7d1fbf4d01576e Mon Sep 17 00:00:00 2001 From: Ian Fan Date: Fri, 7 Dec 2018 12:39:35 +0000 Subject: swaybar: implement mouse events for tray --- swaybar/bar.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'swaybar/bar.c') diff --git a/swaybar/bar.c b/swaybar/bar.c index 668168eb..ebb9bc12 100644 --- a/swaybar/bar.c +++ b/swaybar/bar.c @@ -215,12 +215,16 @@ struct wl_output_listener output_listener = { static void xdg_output_handle_logical_position(void *data, struct zxdg_output_v1 *xdg_output, int32_t x, int32_t y) { - // Who cares + struct swaybar_output *output = data; + output->output_x = x; + output->output_y = y; } static void xdg_output_handle_logical_size(void *data, struct zxdg_output_v1 *xdg_output, int32_t width, int32_t height) { - // Who cares + struct swaybar_output *output = data; + output->output_height = height; + output->output_width = width; } static void xdg_output_handle_done(void *data, -- cgit v1.2.3 From 2fd41fe9c85a866173fc2770ed7669871258bced Mon Sep 17 00:00:00 2001 From: Ian Fan Date: Fri, 7 Dec 2018 12:40:45 +0000 Subject: swaybar: set bar dirty on SNI event --- swaybar/bar.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'swaybar/bar.c') diff --git a/swaybar/bar.c b/swaybar/bar.c index ebb9bc12..4fd9c488 100644 --- a/swaybar/bar.c +++ b/swaybar/bar.c @@ -124,7 +124,7 @@ static void destroy_layer_surface(struct swaybar_output *output) { output->frame_scheduled = false; } -static void set_bar_dirty(struct swaybar *bar) { +void set_bar_dirty(struct swaybar *bar) { struct swaybar_output *output; wl_list_for_each(output, &bar->outputs, link) { set_output_dirty(output); -- cgit v1.2.3 From f33b5c5223a3eb8b63ff4361f43b82ad2104e84b Mon Sep 17 00:00:00 2001 From: Ian Fan Date: Tue, 11 Dec 2018 16:27:39 +0000 Subject: swaybar: do not create tray if hidden --- swaybar/bar.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'swaybar/bar.c') diff --git a/swaybar/bar.c b/swaybar/bar.c index 4fd9c488..7aed4dca 100644 --- a/swaybar/bar.c +++ b/swaybar/bar.c @@ -371,7 +371,9 @@ bool bar_setup(struct swaybar *bar, const char *socket_path) { assert(pointer->cursor_surface); #if HAVE_TRAY - bar->tray = create_tray(bar); + if (!bar->config->tray_hidden) { + bar->tray = create_tray(bar); + } #endif if (bar->config->workspace_buttons) { -- cgit v1.2.3