]> git.mdlowis.com Git - proto/labwc.git/commitdiff
osd: make desktop_cycle_view() private in osd.c
authortokyo4j <hrak1529@gmail.com>
Sun, 29 Dec 2024 19:57:39 +0000 (04:57 +0900)
committerHiroaki Yamamoto <hrak1529@gmail.com>
Mon, 30 Dec 2024 09:07:45 +0000 (18:07 +0900)
include/labwc.h
src/desktop.c
src/osd.c

index 06729f8361a0aeb78a9fca72f94bf51ced65e868..91aba8c183a603c5dff0e990d64a7da2f88a8ec4 100644 (file)
@@ -481,14 +481,6 @@ struct view *desktop_topmost_focusable_view(struct server *server);
  */
 void desktop_update_top_layer_visiblity(struct server *server);
 
-/**
- * desktop_cycle_view - return view to 'cycle' to
- * @start_view: reference point for finding next view to cycle to
- * Note: If !start_view, the second focusable view is returned
- */
-struct view *desktop_cycle_view(struct server *server, struct view *start_view,
-       enum lab_cycle_dir dir);
-
 /**
  * desktop_focus_topmost_view() - focus the topmost view on the current
  * workspace, skipping views that claim not to want focus (those can
index 5f7958b9358f6606ab05fb1b236946db6fff0af3..63ab7bd5787d89f3dba9420f3a1cab2c619179a8 100644 (file)
@@ -108,34 +108,6 @@ desktop_focus_view_or_surface(struct seat *seat, struct view *view,
        }
 }
 
-struct view *
-desktop_cycle_view(struct server *server, struct view *start_view,
-               enum lab_cycle_dir dir)
-{
-       struct view *(*iter)(struct wl_list *head, struct view *view,
-               enum lab_view_criteria criteria);
-       bool forwards = dir == LAB_CYCLE_DIR_FORWARD;
-       iter = forwards ? view_next_no_head_stop : view_prev_no_head_stop;
-
-       enum lab_view_criteria criteria = rc.window_switcher.criteria;
-
-       /*
-        * Views are listed in stacking order, topmost first.  Usually the
-        * topmost view is already focused, so when iterating in the forward
-        * direction we pre-select the view second from the top:
-        *
-        *   View #1 (on top, currently focused)
-        *   View #2 (pre-selected)
-        *   View #3
-        *   ...
-        */
-       if (!start_view && forwards) {
-               start_view = iter(&server->views, NULL, criteria);
-       }
-
-       return iter(&server->views, start_view, criteria);
-}
-
 struct view *
 desktop_topmost_focusable_view(struct server *server)
 {
index 43f051bf09d2f897faf1ebb910ca485361b9270e..f5863b6160f6d1d7d106c85cb8decd627010bf10 100644 (file)
--- a/src/osd.c
+++ b/src/osd.c
@@ -54,6 +54,38 @@ osd_update_preview_outlines(struct view *view)
        wlr_scene_node_set_position(&rect->tree->node, geo.x, geo.y);
 }
 
+/*
+ * Returns the view to select next in the window switcher.
+ * If !start_view, the second focusable view is returned.
+ */
+static struct view *
+get_next_cycle_view(struct server *server, struct view *start_view,
+               enum lab_cycle_dir dir)
+{
+       struct view *(*iter)(struct wl_list *head, struct view *view,
+               enum lab_view_criteria criteria);
+       bool forwards = dir == LAB_CYCLE_DIR_FORWARD;
+       iter = forwards ? view_next_no_head_stop : view_prev_no_head_stop;
+
+       enum lab_view_criteria criteria = rc.window_switcher.criteria;
+
+       /*
+        * Views are listed in stacking order, topmost first.  Usually the
+        * topmost view is already focused, so when iterating in the forward
+        * direction we pre-select the view second from the top:
+        *
+        *   View #1 (on top, currently focused)
+        *   View #2 (pre-selected)
+        *   View #3
+        *   ...
+        */
+       if (!start_view && forwards) {
+               start_view = iter(&server->views, NULL, criteria);
+       }
+
+       return iter(&server->views, start_view, criteria);
+}
+
 void
 osd_on_view_destroy(struct view *view)
 {
@@ -72,7 +104,7 @@ osd_on_view_destroy(struct view *view)
                 */
 
                /* Also resets preview node */
-               osd_state->cycle_view = desktop_cycle_view(view->server,
+               osd_state->cycle_view = get_next_cycle_view(view->server,
                        osd_state->cycle_view, LAB_CYCLE_DIR_BACKWARD);
 
                /*
@@ -147,7 +179,7 @@ osd_begin(struct server *server, enum lab_cycle_dir direction)
        server->osd_state.initial_direction = direction;
        server->osd_state.initial_keybind_contained_shift =
                shift_is_pressed(server);
-       server->osd_state.cycle_view = desktop_cycle_view(server,
+       server->osd_state.cycle_view = get_next_cycle_view(server,
                server->osd_state.cycle_view, direction);
 
        seat_focus_override_begin(&server->seat,
@@ -160,7 +192,7 @@ osd_cycle(struct server *server, enum lab_cycle_dir direction)
 {
        assert(server->input_mode == LAB_INPUT_STATE_WINDOW_SWITCHER);
 
-       server->osd_state.cycle_view = desktop_cycle_view(server,
+       server->osd_state.cycle_view = get_next_cycle_view(server,
                server->osd_state.cycle_view, direction);
        osd_update(server);
 }