From cfa51ab6285319250061be5a58c192293ca5031d Mon Sep 17 00:00:00 2001 From: John Lindgren Date: Sat, 26 Nov 2022 22:49:10 -0500 Subject: [PATCH] view: Fix SSD margin computation 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 | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/view.c b/src/view.c index 97064508..a747c0a6 100644 --- a/src/view.c +++ b/src/view.c @@ -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) { -- 2.52.0