From f7e94e7a0f33cbf6b5ee784974a431d633aada0f Mon Sep 17 00:00:00 2001 From: Federico Angelilli Date: Wed, 6 Mar 2024 21:36:14 +0100 Subject: Fix button ordering bug --- src/state.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'src/state.c') diff --git a/src/state.c b/src/state.c index e8ddbe0..c5dc759 100644 --- a/src/state.c +++ b/src/state.c @@ -55,6 +55,21 @@ void state_redraw(State *state, bool changed_layout) state->id = g_idle_add_full(G_PRIORITY_HIGH_IDLE, changed_layout ? redraw_and_layout : redraw, state, NULL); } +static gint align_compare(gconstpointer a, gconstpointer b) +{ + PangoAlignment a_align = ((Button *)a)->align; + PangoAlignment b_align = ((Button *)b)->align; + + if (a_align < b_align) return -1; + if (a_align > b_align) return 1; + return 0; +} + +void state_order_button(State *state) +{ + state->btns = g_list_sort(state->btns, align_compare); +} + void state_destroy(State *state) { g_list_free_full(state->btns, (void *)button_destroy); -- cgit v1.2.3