aboutsummaryrefslogtreecommitdiffstats
path: root/swaybar/ipc.c
diff options
context:
space:
mode:
authorLibravatar Drew DeVault <sir@cmpwn.com>2018-03-29 16:02:59 -0400
committerLibravatar Drew DeVault <sir@cmpwn.com>2018-03-29 22:11:08 -0400
commitb72825441b61f56478ef29372a41a6fa72e4c79d (patch)
treeff1767763ae8f86f905a3032009375c2827522de /swaybar/ipc.c
parentTear down bar when display exits (diff)
downloadsway-b72825441b61f56478ef29372a41a6fa72e4c79d.tar.gz
sway-b72825441b61f56478ef29372a41a6fa72e4c79d.tar.zst
sway-b72825441b61f56478ef29372a41a6fa72e4c79d.zip
Fixed laggy focused output boolean
Diffstat (limited to 'swaybar/ipc.c')
-rw-r--r--swaybar/ipc.c7
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
218void ipc_get_workspaces(struct swaybar *bar) { 218void 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