diff --git a/swaybar/input.c b/swaybar/input.c index d0191f51..8e994dcf 100644 --- a/swaybar/input.c +++ b/swaybar/input.c @@ -205,7 +205,7 @@ static void wl_pointer_axis(void *data, struct wl_pointer *wl_pointer, struct swaybar_workspace *new; - if (amt > 0.0) { + if (amt < 0.0) { if (active == first) { if (!bar->config->wrap_scroll) { return; diff --git a/swaybar/ipc.c b/swaybar/ipc.c index e1b30b52..706f968d 100644 --- a/swaybar/ipc.c +++ b/swaybar/ipc.c @@ -307,7 +307,7 @@ bool ipc_get_workspaces(struct swaybar *bar) { if (ws->urgent) { bar->visible_by_urgency = true; } - wl_list_insert(&output->workspaces, &ws->link); + wl_list_insert(output->workspaces.prev, &ws->link); } } } diff --git a/swaybar/render.c b/swaybar/render.c index 85e7542f..4ebf922e 100644 --- a/swaybar/render.c +++ b/swaybar/render.c @@ -466,7 +466,7 @@ static uint32_t render_to_cairo(cairo_t *cairo, struct swaybar_output *output) { x = 0; if (config->workspace_buttons) { struct swaybar_workspace *ws; - wl_list_for_each_reverse(ws, &output->workspaces, link) { + wl_list_for_each(ws, &output->workspaces, link) { uint32_t h = render_workspace_button(cairo, output, ws, &x); max_height = h > max_height ? h : max_height; }