void
ssd_update_geometry(struct view *view)
{
- if (!view->ssd.tree || !view->scene_node) {
+ if (!view->scene_node) {
return;
}
if (!view->ssd.enabled) {
- if (view->ssd.tree->node.enabled) {
+ if (view->ssd.tree && view->ssd.tree->node.enabled) {
wlr_scene_node_set_enabled(&view->ssd.tree->node, false);
view->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->margin = ssd_thickness(view);
struct wlr_xdg_toplevel_requested *requested =
&view->xdg_surface->toplevel->requested;
foreign_toplevel_handle_create(view);
-
- view->ssd.enabled = has_ssd(view);
- if (view->ssd.enabled) {
- ssd_create(view);
- }
+ view_set_decorations(view, has_ssd(view));
position_xdg_toplevel_view(view);
if (!view->fullscreen && requested->fullscreen) {
}
if (!view->been_mapped) {
- view->ssd.enabled = want_deco(view);
- if (view->ssd.enabled) {
- ssd_create(view);
- }
+ view_set_decorations(view, want_deco(view));
if (!view->maximized && !view->fullscreen) {
set_initial_position(view);