From b48c250177bb698e9deb595d438d0a0144994434 Mon Sep 17 00:00:00 2001 From: John Lindgren Date: Fri, 4 Jul 2025 00:44:22 -0400 Subject: [PATCH] src: prefer 'if' over 'goto' where convenient 'goto' should not be used for normal control flow. v2 add comment in lieu of goto label --- src/input/keyboard.c | 29 ++++++++++++++--------------- src/ssd/ssd-titlebar.c | 19 +++++++++---------- 2 files changed, 23 insertions(+), 25 deletions(-) diff --git a/src/input/keyboard.c b/src/input/keyboard.c index 15b549f1..17a21395 100644 --- a/src/input/keyboard.c +++ b/src/input/keyboard.c @@ -265,23 +265,21 @@ static struct keybind * match_keybinding(struct server *server, struct keyinfo *keyinfo, bool is_virtual) { - if (is_virtual) { - goto process_syms; - } - - /* First try keycodes */ - struct keybind *keybind = match_keybinding_for_sym(server, - keyinfo->modifiers, XKB_KEY_NoSymbol, keyinfo->xkb_keycode); - if (keybind) { - wlr_log(WLR_DEBUG, "keycode matched"); - return keybind; + if (!is_virtual) { + /* First try keycodes */ + struct keybind *keybind = match_keybinding_for_sym(server, + keyinfo->modifiers, XKB_KEY_NoSymbol, keyinfo->xkb_keycode); + if (keybind) { + wlr_log(WLR_DEBUG, "keycode matched"); + return keybind; + } } -process_syms: /* Then fall back to keysyms */ for (int i = 0; i < keyinfo->translated.nr_syms; i++) { - keybind = match_keybinding_for_sym(server, keyinfo->modifiers, - keyinfo->translated.syms[i], keyinfo->xkb_keycode); + struct keybind *keybind = + match_keybinding_for_sym(server, keyinfo->modifiers, + keyinfo->translated.syms[i], keyinfo->xkb_keycode); if (keybind) { wlr_log(WLR_DEBUG, "translated keysym matched"); return keybind; @@ -290,8 +288,9 @@ process_syms: /* And finally test for keysyms without modifier */ for (int i = 0; i < keyinfo->raw.nr_syms; i++) { - keybind = match_keybinding_for_sym(server, keyinfo->modifiers, - keyinfo->raw.syms[i], keyinfo->xkb_keycode); + struct keybind *keybind = + match_keybinding_for_sym(server, keyinfo->modifiers, + keyinfo->raw.syms[i], keyinfo->xkb_keycode); if (keybind) { wlr_log(WLR_DEBUG, "raw keysym matched"); return keybind; diff --git a/src/ssd/ssd-titlebar.c b/src/ssd/ssd-titlebar.c index d44adf41..57d49600 100644 --- a/src/ssd/ssd-titlebar.c +++ b/src/ssd/ssd-titlebar.c @@ -543,20 +543,19 @@ ssd_update_button_hover(struct wlr_scene_node *node, struct ssd_hover_state *hover_state) { struct ssd_button *button = NULL; - if (!node || !node->data) { - goto disable_old_hover; - } - struct node_descriptor *desc = node->data; - if (desc->type == LAB_NODE_DESC_SSD_BUTTON) { - button = node_ssd_button_from_node(node); - if (button == hover_state->button) { - /* Cursor is still on the same button */ - return; + if (node && node->data) { + struct node_descriptor *desc = node->data; + if (desc->type == LAB_NODE_DESC_SSD_BUTTON) { + button = node_ssd_button_from_node(node); + if (button == hover_state->button) { + /* Cursor is still on the same button */ + return; + } } } -disable_old_hover: + /* Disable old hover */ if (hover_state->button) { update_button_state(hover_state->button, LAB_BS_HOVERD, false); hover_state->view = NULL; -- 2.52.0