diff --git a/src/ssd/ssd.c b/src/ssd/ssd.c index 71865eee..2b2feccd 100644 --- a/src/ssd/ssd.c +++ b/src/ssd/ssd.c @@ -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,23 +166,10 @@ ssd_create(struct view *view) void ssd_update_geometry(struct view *view) { - if (!view->scene_node) { + if (!view->ssd.tree) { 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); - } - 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; int height = view->h; if (width == view->ssd.state.width && height == view->ssd.state.height) { diff --git a/src/view.c b/src/view.c index f13203a8..221c54c4 100644 --- a/src/view.c +++ b/src/view.c @@ -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) {