]> git.mdlowis.com Git - proto/labwc.git/commitdiff
src/osd.c: make osd_preview_restore() private in osd.c
authortokyo4j <hrak1529@gmail.com>
Sun, 29 Dec 2024 15:44:12 +0000 (00:44 +0900)
committerHiroaki Yamamoto <hrak1529@gmail.com>
Mon, 30 Dec 2024 09:07:45 +0000 (18:07 +0900)
include/osd.h
src/input/keyboard.c
src/osd.c

index 478bcc30438e700fdc8bfd2bf90d6ba6c5c38393..2eefbf7159c295bdb2b086bdc083089201b5b65a 100644 (file)
@@ -43,9 +43,6 @@ void osd_update(struct server *server);
 /* Closes the OSD */
 void osd_finish(struct server *server);
 
-/* Moves preview views back into their original stacking order and state */
-void osd_preview_restore(struct server *server);
-
 /* Notify OSD about a destroying view */
 void osd_on_view_destroy(struct view *view);
 
index 1a8eebf676491913c2bd5320f39ab75003159c86..7460fec598f9ab1dd2bc382719cc86f2598c394f 100644 (file)
@@ -76,7 +76,6 @@ end_cycling(struct server *server)
        }
 
        struct view *cycle_view = server->osd_state.cycle_view;
-       osd_preview_restore(server);
        /* FIXME: osd_finish() transiently sets focus to the old surface */
        osd_finish(server);
        /* Note that server->osd_state.cycle_view is cleared at this point */
@@ -464,7 +463,6 @@ handle_cycle_view_key(struct server *server, struct keyinfo *keyinfo)
        for (int i = 0; i < keyinfo->translated.nr_syms; i++) {
                if (keyinfo->translated.syms[i] == XKB_KEY_Escape) {
                        /* cancel view-cycle */
-                       osd_preview_restore(server);
                        osd_finish(server);
                        return;
                }
index 1f58fb496d723d390d010656d6a8234eebfc781c..7eb3ad5a78070e3c95df2a9eb028b040c83c43b5 100644 (file)
--- a/src/osd.c
+++ b/src/osd.c
@@ -102,9 +102,36 @@ osd_on_view_destroy(struct view *view)
        }
 }
 
+static void
+restore_preview_node(struct server *server)
+{
+       struct osd_state *osd_state = &server->osd_state;
+       if (osd_state->preview_node) {
+               wlr_scene_node_reparent(osd_state->preview_node,
+                       osd_state->preview_parent);
+
+               if (osd_state->preview_anchor) {
+                       wlr_scene_node_place_above(osd_state->preview_node,
+                               osd_state->preview_anchor);
+               } else {
+                       /* Selected view was the first node */
+                       wlr_scene_node_lower_to_bottom(osd_state->preview_node);
+               }
+
+               /* Node was disabled / minimized before, disable again */
+               if (!osd_state->preview_was_enabled) {
+                       wlr_scene_node_set_enabled(osd_state->preview_node, false);
+               }
+               osd_state->preview_node = NULL;
+               osd_state->preview_parent = NULL;
+               osd_state->preview_anchor = NULL;
+       }
+}
+
 void
 osd_finish(struct server *server)
 {
+       restore_preview_node(server);
        seat_focus_override_end(&server->seat);
 
        server->osd_state.preview_node = NULL;
@@ -134,32 +161,6 @@ osd_finish(struct server *server)
        server->osd_state.cycle_view = NULL;
 }
 
-void
-osd_preview_restore(struct server *server)
-{
-       struct osd_state *osd_state = &server->osd_state;
-       if (osd_state->preview_node) {
-               wlr_scene_node_reparent(osd_state->preview_node,
-                       osd_state->preview_parent);
-
-               if (osd_state->preview_anchor) {
-                       wlr_scene_node_place_above(osd_state->preview_node,
-                               osd_state->preview_anchor);
-               } else {
-                       /* Selected view was the first node */
-                       wlr_scene_node_lower_to_bottom(osd_state->preview_node);
-               }
-
-               /* Node was disabled / minimized before, disable again */
-               if (!osd_state->preview_was_enabled) {
-                       wlr_scene_node_set_enabled(osd_state->preview_node, false);
-               }
-               osd_state->preview_node = NULL;
-               osd_state->preview_parent = NULL;
-               osd_state->preview_anchor = NULL;
-       }
-}
-
 static void
 preview_cycled_view(struct view *view)
 {
@@ -168,7 +169,7 @@ preview_cycled_view(struct view *view)
        struct osd_state *osd_state = &view->server->osd_state;
 
        /* Move previous selected node back to its original place */
-       osd_preview_restore(view->server);
+       restore_preview_node(view->server);
 
        /* Store some pointers so we can reset the preview later on */
        osd_state->preview_node = &view->scene_tree->node;