* view_set_fullscreen/view_maximize() below). "Current"
* dimensions remain zero until handle_commit().
*/
- view->pending.width = xdg_surface->current.geometry.width;
- view->pending.height = xdg_surface->current.geometry.height;
+ if (wlr_box_empty(&view->pending)) {
+ view->pending.width =
+ xdg_surface->current.geometry.width;
+ view->pending.height =
+ xdg_surface->current.geometry.height;
+ }
- position_xdg_toplevel_view(view);
if (!view->fullscreen && requested->fullscreen) {
view_set_fullscreen(view, true,
requested->fullscreen_output);
} else if (!view->maximized && requested->maximized) {
view_maximize(view, true,
/*store_natural_geometry*/ true);
+ } else if (view_is_floating(view)) {
+ position_xdg_toplevel_view(view);
}
view_moved(view);
if (!view->been_mapped) {
view_set_decorations(view, want_deco(xwayland_surface));
- if (!view->maximized && !view->fullscreen) {
+ if (view_is_floating(view)) {
set_initial_position(view, xwayland_surface);
}
view->been_mapped = true;
}
- if (view->ssd_enabled && !view->fullscreen && !view->maximized) {
+ if (view->ssd_enabled && view_is_floating(view)) {
top_left_edge_boundary_check(view);
}