]> git.mdlowis.com Git - proto/labwc.git/commitdiff
view: Fix SSD margin computation
authorJohn Lindgren <john@jlindgren.net>
Sun, 27 Nov 2022 03:49:10 +0000 (22:49 -0500)
committerJohan Malm <johanmalm@users.noreply.github.com>
Sun, 27 Nov 2022 06:47:56 +0000 (06:47 +0000)
If `view->ssd_enabled` is false when calling `ssd_create()` then
`ssd_thickness()` returns zeroes which are stored in `ssd->margins`.

The quick fix is just to ensure we set `view->ssd_enabled` before
calling `ssd_create()`. At some point, it might be nice to refactor
so that `ssd_create()` does not reference `view->ssd_enabled`.

src/view.c

index 970645089ceae95bd36a5bb6c90eb81e4a346195..a747c0a6234704ccad27e18f4d0fedfc111fc9fd 100644 (file)
@@ -559,12 +559,16 @@ view_set_decorations(struct view *view, bool decorations)
 {
        assert(view);
        if (view->ssd_enabled != decorations && !view->fullscreen) {
+               /*
+                * Set view->ssd_enabled first since it is referenced
+                * within the call tree of ssd_create()
+                */
+               view->ssd_enabled = decorations;
                if (decorations) {
                        ssd_create(view, view == view->server->focused_view);
                } else {
                        ssd_destroy(view);
                }
-               view->ssd_enabled = decorations;
                if (view->maximized) {
                        view_apply_maximized_geometry(view);
                } else if (view->tiled) {