]> git.mdlowis.com Git - proto/labwc.git/commitdiff
view: Enable/disable decorations explicitly
authorJohn Lindgren <john@jlindgren.net>
Sat, 26 Nov 2022 07:00:38 +0000 (02:00 -0500)
committerJohan Malm <johanmalm@users.noreply.github.com>
Sat, 26 Nov 2022 18:02:24 +0000 (18:02 +0000)
`view_set_decorations()` now calls `ssd_create()` and `ssd_destroy()`
explicitly to enable/disable decorations. As a result, the implicit
enable/disable logic in `ssd_update_geometry()` is no longer needed.

src/ssd/ssd.c
src/view.c

index 71865eee205aca579b69cf4333c491a36bfb81a8..2b2feccd33cc3647dc70f2fe450f63f59cd56276 100644 (file)
@@ -150,8 +150,6 @@ ssd_create(struct view *view)
        bool is_active = view->server->focused_view == view;
 
        if (view->ssd.tree) {
-               /* SSD was hidden. Just enable it */
-               wlr_scene_node_set_enabled(&view->ssd.tree->node, true);
                ssd_set_active(view, is_active);
                return;
        }
@@ -168,21 +166,8 @@ ssd_create(struct view *view)
 void
 ssd_update_geometry(struct view *view)
 {
-       if (!view->scene_node) {
-               return;
-       }
-
-       if (!view->ssd_enabled) {
-               if (view->ssd.tree && view->ssd.tree->node.enabled) {
-                       wlr_scene_node_set_enabled(&view->ssd.tree->node, false);
-                       view->ssd.margin = ssd_thickness(view);
-               }
+       if (!view->ssd.tree) {
                return;
-       } else if (!view->ssd.tree) {
-               ssd_create(view);
-       } else if (!view->ssd.tree->node.enabled) {
-               wlr_scene_node_set_enabled(&view->ssd.tree->node, true);
-               view->ssd.margin = ssd_thickness(view);
        }
 
        int width = view->w;
index f13203a80078498d96b849711e63f8f98c7fc023..221c54c42c2c0d562f224f398472ed8b667fb5ed 100644 (file)
@@ -556,8 +556,12 @@ view_set_decorations(struct view *view, bool decorations)
 {
        assert(view);
        if (view->ssd_enabled != decorations && !view->fullscreen) {
+               if (decorations) {
+                       ssd_create(view);
+               } else {
+                       ssd_destroy(view);
+               }
                view->ssd_enabled = decorations;
-               ssd_update_geometry(view);
                if (view->maximized) {
                        view_apply_maximized_geometry(view);
                } else if (view->tiled) {