From 312d009f656e86401cda1c6198b929e4cbd85d2f Mon Sep 17 00:00:00 2001 From: Ian Fan Date: Mon, 24 Sep 2018 18:42:25 +0100 Subject: swaybar: fail if bar id is invalid --- swaybar/bar.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'swaybar/bar.c') diff --git a/swaybar/bar.c b/swaybar/bar.c index ab307fd4..809416dd 100644 --- a/swaybar/bar.c +++ b/swaybar/bar.c @@ -478,14 +478,16 @@ static void render_all_frames(struct swaybar *bar) { } } -void bar_setup(struct swaybar *bar, +bool bar_setup(struct swaybar *bar, const char *socket_path, const char *bar_id) { bar_init(bar); init_event_loop(); bar->ipc_socketfd = ipc_open_socket(socket_path); bar->ipc_event_socketfd = ipc_open_socket(socket_path); - ipc_initialize(bar, bar_id); + if (!ipc_initialize(bar, bar_id)) { + return false; + } if (bar->config->status_command) { bar->status = status_line_init(bar->config->status_command); } @@ -526,6 +528,7 @@ void bar_setup(struct swaybar *bar, ipc_get_workspaces(bar); render_all_frames(bar); + return true; } static void display_in(int fd, short mask, void *data) { -- cgit v1.2.3-54-g00ecf From 751bb4a376a67916593d5386d781410e03bec921 Mon Sep 17 00:00:00 2001 From: Ian Fan Date: Mon, 24 Sep 2018 21:56:35 +0100 Subject: swaybar: move i3bar definitions into separate file --- include/swaybar/i3bar.h | 34 ++++++++++++++++++++++++++++++++++ include/swaybar/status_line.h | 26 -------------------------- swaybar/bar.c | 7 ++++--- swaybar/i3bar.c | 2 ++ swaybar/render.c | 1 + swaybar/status_line.c | 2 ++ 6 files changed, 43 insertions(+), 29 deletions(-) create mode 100644 include/swaybar/i3bar.h (limited to 'swaybar/bar.c') diff --git a/include/swaybar/i3bar.h b/include/swaybar/i3bar.h new file mode 100644 index 00000000..12d9b317 --- /dev/null +++ b/include/swaybar/i3bar.h @@ -0,0 +1,34 @@ +#ifndef _SWAYBAR_I3BAR_H +#define _SWAYBAR_I3BAR_H + +#include "bar.h" +#include "status_line.h" + +struct i3bar_block { + struct wl_list link; + int ref_count; + char *full_text, *short_text, *align; + bool urgent; + uint32_t *color; + int min_width; + char *name, *instance; + bool separator; + int separator_block_width; + bool markup; + // Airblader features + uint32_t background; + uint32_t border; + int border_top; + int border_bottom; + int border_left; + int border_right; +}; + +void i3bar_block_unref(struct i3bar_block *block); +bool i3bar_handle_readable(struct status_line *status); +enum hotspot_event_handling i3bar_block_send_click(struct status_line *status, + struct i3bar_block *block, int x, int y, enum x11_button button); +enum x11_button wl_button_to_x11_button(uint32_t button); +enum x11_button wl_axis_to_x11_button(uint32_t axis, wl_fixed_t value); + +#endif diff --git a/include/swaybar/status_line.h b/include/swaybar/status_line.h index d3eabdf6..e6c7dac2 100644 --- a/include/swaybar/status_line.h +++ b/include/swaybar/status_line.h @@ -13,26 +13,6 @@ enum status_protocol { PROTOCOL_I3BAR, }; -struct i3bar_block { - struct wl_list link; - int ref_count; - char *full_text, *short_text, *align; - bool urgent; - uint32_t *color; - int min_width; - char *name, *instance; - bool separator; - int separator_block_width; - bool markup; - // Airblader features - uint32_t background; - uint32_t border; - int border_top; - int border_bottom; - int border_left; - int border_right; -}; - struct status_line { pid_t pid; int read_fd, write_fd; @@ -55,11 +35,5 @@ struct status_line *status_line_init(char *cmd); void status_error(struct status_line *status, const char *text); bool status_handle_readable(struct status_line *status); void status_line_free(struct status_line *status); -bool i3bar_handle_readable(struct status_line *status); -enum hotspot_event_handling i3bar_block_send_click(struct status_line *status, - struct i3bar_block *block, int x, int y, enum x11_button button); -void i3bar_block_unref(struct i3bar_block *block); -enum x11_button wl_button_to_x11_button(uint32_t button); -enum x11_button wl_axis_to_x11_button(uint32_t axis, wl_fixed_t value); #endif diff --git a/swaybar/bar.c b/swaybar/bar.c index 809416dd..15e81976 100644 --- a/swaybar/bar.c +++ b/swaybar/bar.c @@ -16,12 +16,13 @@ #else #include #endif -#include "swaybar/render.h" +#include "swaybar/bar.h" #include "swaybar/config.h" #include "swaybar/event_loop.h" -#include "swaybar/status_line.h" -#include "swaybar/bar.h" +#include "swaybar/i3bar.h" #include "swaybar/ipc.h" +#include "swaybar/status_line.h" +#include "swaybar/render.h" #include "ipc-client.h" #include "list.h" #include "log.h" diff --git a/swaybar/i3bar.c b/swaybar/i3bar.c index 325aa61a..8e9b038b 100644 --- a/swaybar/i3bar.c +++ b/swaybar/i3bar.c @@ -6,7 +6,9 @@ #include #include #include +#include "swaybar/bar.h" #include "swaybar/config.h" +#include "swaybar/i3bar.h" #include "swaybar/status_line.h" void i3bar_block_unref(struct i3bar_block *block) { diff --git a/swaybar/render.c b/swaybar/render.c index 9413dc57..035be0b1 100644 --- a/swaybar/render.c +++ b/swaybar/render.c @@ -10,6 +10,7 @@ #include "pool-buffer.h" #include "swaybar/bar.h" #include "swaybar/config.h" +#include "swaybar/i3bar.h" #include "swaybar/ipc.h" #include "swaybar/render.h" #include "swaybar/status_line.h" diff --git a/swaybar/status_line.c b/swaybar/status_line.c index 1442e1a0..ed6dc7c8 100644 --- a/swaybar/status_line.c +++ b/swaybar/status_line.c @@ -7,7 +7,9 @@ #include #include #include +#include "swaybar/bar.h" #include "swaybar/config.h" +#include "swaybar/i3bar.h" #include "swaybar/event_loop.h" #include "swaybar/status_line.h" #include "readline.h" -- cgit v1.2.3-54-g00ecf