diff options
author | Drew DeVault <sir@cmpwn.com> | 2018-03-29 16:02:59 -0400 |
---|---|---|
committer | Drew DeVault <sir@cmpwn.com> | 2018-03-29 22:11:08 -0400 |
commit | b72825441b61f56478ef29372a41a6fa72e4c79d (patch) | |
tree | ff1767763ae8f86f905a3032009375c2827522de /swaybar | |
parent | Tear down bar when display exits (diff) | |
download | sway-b72825441b61f56478ef29372a41a6fa72e4c79d.tar.gz sway-b72825441b61f56478ef29372a41a6fa72e4c79d.tar.zst sway-b72825441b61f56478ef29372a41a6fa72e4c79d.zip |
Fixed laggy focused output boolean
Diffstat (limited to 'swaybar')
-rw-r--r-- | swaybar/ipc.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/swaybar/ipc.c b/swaybar/ipc.c index a260b798..a82904bd 100644 --- a/swaybar/ipc.c +++ b/swaybar/ipc.c | |||
@@ -216,9 +216,11 @@ static void free_workspaces(struct wl_list *list) { | |||
216 | } | 216 | } |
217 | 217 | ||
218 | void ipc_get_workspaces(struct swaybar *bar) { | 218 | void ipc_get_workspaces(struct swaybar *bar) { |
219 | bar->focused_output = NULL; | ||
219 | struct swaybar_output *output; | 220 | struct swaybar_output *output; |
220 | wl_list_for_each(output, &bar->outputs, link) { | 221 | wl_list_for_each(output, &bar->outputs, link) { |
221 | free_workspaces(&output->workspaces); | 222 | free_workspaces(&output->workspaces); |
223 | output->focused = false; | ||
222 | } | 224 | } |
223 | uint32_t len = 0; | 225 | uint32_t len = 0; |
224 | char *res = ipc_single_command(bar->ipc_socketfd, | 226 | char *res = ipc_single_command(bar->ipc_socketfd, |
@@ -251,10 +253,6 @@ void ipc_get_workspaces(struct swaybar *bar) { | |||
251 | ws->visible = json_object_get_boolean(visible); | 253 | ws->visible = json_object_get_boolean(visible); |
252 | ws->focused = json_object_get_boolean(focused); | 254 | ws->focused = json_object_get_boolean(focused); |
253 | if (ws->focused) { | 255 | if (ws->focused) { |
254 | if (bar->focused_output) { | ||
255 | bar->focused_output->focused = false; | ||
256 | } | ||
257 | bar->focused_output = output; | ||
258 | output->focused = true; | 256 | output->focused = true; |
259 | } | 257 | } |
260 | ws->urgent = json_object_get_boolean(urgent); | 258 | ws->urgent = json_object_get_boolean(urgent); |
@@ -262,6 +260,7 @@ void ipc_get_workspaces(struct swaybar *bar) { | |||
262 | } | 260 | } |
263 | } | 261 | } |
264 | } | 262 | } |
263 | json_object_put(results); | ||
265 | free(res); | 264 | free(res); |
266 | } | 265 | } |
267 | 266 | ||