]> git.mdlowis.com Git - proto/labwc.git/commitdiff
Check input_mode to see whether window switcher is active or not
authortokyo4j <hrak1529@gmail.com>
Sat, 28 Dec 2024 08:42:26 +0000 (17:42 +0900)
committerJohan Malm <johanmalm@users.noreply.github.com>
Sat, 28 Dec 2024 21:28:22 +0000 (21:28 +0000)
...rather than "if (server->osd_state.cycle_view){..}".

src/foreign-toplevel/foreign.c
src/input/cursor.c
src/input/keyboard.c
src/osd.c
src/xdg.c
src/xwayland.c

index 34c54abd82fbda3db565cd8c699a0a917f123d11..6f626c6e9b0751e6fde4badb7106ac70cc12f03c 100644 (file)
@@ -29,7 +29,8 @@ foreign_request_fullscreen(struct foreign_toplevel *toplevel, bool fullscreen)
 void
 foreign_request_activate(struct foreign_toplevel *toplevel)
 {
-       if (toplevel->view->server->osd_state.cycle_view) {
+       if (toplevel->view->server->input_mode
+                       == LAB_INPUT_STATE_WINDOW_SWITCHER) {
                wlr_log(WLR_INFO, "Preventing focus request while in window switcher");
                return;
        }
index 225f836bae5b308a5ea43c613d2393c8e8f6842e..dc6774c158cc38be3c605c97826275094f4adf8d 100644 (file)
@@ -614,7 +614,8 @@ cursor_process_motion(struct server *server, uint32_t time, double *sx, double *
        }
 
        if ((ctx.view || ctx.surface) && rc.focus_follow_mouse
-                       && !server->osd_state.cycle_view) {
+                       && server->input_mode
+                               != LAB_INPUT_STATE_WINDOW_SWITCHER) {
                desktop_focus_view_or_surface(seat, ctx.view, ctx.surface,
                        rc.raise_on_focus);
        }
@@ -655,7 +656,8 @@ _cursor_update_focus(struct server *server)
 
        if ((ctx.view || ctx.surface) && rc.focus_follow_mouse
                        && !rc.focus_follow_mouse_requires_movement
-                       && !server->osd_state.cycle_view) {
+                       && server->input_mode
+                               != LAB_INPUT_STATE_WINDOW_SWITCHER) {
                /* Prevents changing keyboard focus during A-Tab */
                desktop_focus_view_or_surface(&server->seat, ctx.view,
                        ctx.surface, rc.raise_on_focus);
@@ -901,7 +903,7 @@ static void
 handle_release_mousebinding(struct server *server,
                struct cursor_context *ctx, uint32_t button)
 {
-       if (server->osd_state.cycle_view) {
+       if (server->input_mode == LAB_INPUT_STATE_WINDOW_SWITCHER) {
                return;
        }
 
@@ -968,7 +970,7 @@ static bool
 handle_press_mousebinding(struct server *server, struct cursor_context *ctx,
                uint32_t button)
 {
-       if (server->osd_state.cycle_view) {
+       if (server->input_mode == LAB_INPUT_STATE_WINDOW_SWITCHER) {
                return false;
        }
 
index cef86bbf97cafd9ea529e69b112a7baf1cd5f9e3..f21b71445898c30bb73910c526f4745b6c454a40 100644 (file)
@@ -133,10 +133,12 @@ keyboard_modifiers_notify(struct wl_listener *listener, void *data)
                overlay_update(seat);
        }
 
-       if (server->osd_state.cycle_view
-                       || seat->workspace_osd_shown_by_modifier) {
+       bool window_switcher_active = server->input_mode
+                                       == LAB_INPUT_STATE_WINDOW_SWITCHER;
+
+       if (window_switcher_active || seat->workspace_osd_shown_by_modifier) {
                if (!keyboard_any_modifiers_pressed(wlr_keyboard)) {
-                       if (server->osd_state.cycle_view) {
+                       if (window_switcher_active) {
                                if (key_state_nr_bound_keys()) {
                                        should_cancel_cycling_on_next_key_release = true;
                                } else {
@@ -570,9 +572,7 @@ handle_compositor_keybindings(struct keyboard *keyboard,
                        key_state_store_pressed_key_as_bound(event->keycode);
                        handle_menu_keys(server, &keyinfo.translated);
                        return true;
-               }
-
-               if (server->osd_state.cycle_view) {
+               } else if (server->input_mode == LAB_INPUT_STATE_WINDOW_SWITCHER) {
                        key_state_store_pressed_key_as_bound(event->keycode);
                        handle_cycle_view_key(server, &keyinfo);
                        return true;
index 1a47275b5c735a8662786d895968ec6c8f2c66c7..3e061c297a0e655db9263b6187937b738c1b5660 100644 (file)
--- a/src/osd.c
+++ b/src/osd.c
@@ -60,7 +60,7 @@ osd_on_view_destroy(struct view *view)
        assert(view);
        struct osd_state *osd_state = &view->server->osd_state;
 
-       if (!osd_state->cycle_view) {
+       if (view->server->input_mode != LAB_INPUT_STATE_WINDOW_SWITCHER) {
                /* OSD not active, no need for clean up */
                return;
        }
index be4173ecbefcd896814369445a51f9fe3a1b8a89..bb6d9eb65c478117e30da0385337c0b97531e466 100644 (file)
--- a/src/xdg.c
+++ b/src/xdg.c
@@ -874,7 +874,7 @@ xdg_activation_handle_request(struct wl_listener *listener, void *data)
                return;
        }
 
-       if (view->server->osd_state.cycle_view) {
+       if (view->server->input_mode == LAB_INPUT_STATE_WINDOW_SWITCHER) {
                wlr_log(WLR_INFO, "Preventing focus request while in window switcher");
                return;
        }
index 4e53f62ee2df03342c2110c02bb8ec469bea0c92..5ebc730ac63aca2cb5660ca3550989e8a6bdf07a 100644 (file)
@@ -402,7 +402,7 @@ handle_request_activate(struct wl_listener *listener, void *data)
                return;
        }
 
-       if (view->server->osd_state.cycle_view) {
+       if (view->server->input_mode == LAB_INPUT_STATE_WINDOW_SWITCHER) {
                wlr_log(WLR_INFO, "Preventing focus request while in window switcher");
                return;
        }