mirror of
https://github.com/labwc/labwc.git
synced 2025-11-04 13:30:07 -05:00
xdg: Fix positioning of initially-maximized views
- Don't overwrite pending size in map() if it was already set - Don't reposition view in map() if maximized/fullscreen Also, as future-proofing in case we one day allow initially-tiled views, replace explicit maximized/fullscreen checks with view_is_floating().
This commit is contained in:
parent
a1b5e1939d
commit
db1d6fa308
2 changed files with 10 additions and 5 deletions
11
src/xdg.c
11
src/xdg.c
|
|
@ -340,16 +340,21 @@ xdg_toplevel_view_map(struct view *view)
|
||||||
* view_set_fullscreen/view_maximize() below). "Current"
|
* view_set_fullscreen/view_maximize() below). "Current"
|
||||||
* dimensions remain zero until handle_commit().
|
* dimensions remain zero until handle_commit().
|
||||||
*/
|
*/
|
||||||
view->pending.width = xdg_surface->current.geometry.width;
|
if (wlr_box_empty(&view->pending)) {
|
||||||
view->pending.height = xdg_surface->current.geometry.height;
|
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) {
|
if (!view->fullscreen && requested->fullscreen) {
|
||||||
view_set_fullscreen(view, true,
|
view_set_fullscreen(view, true,
|
||||||
requested->fullscreen_output);
|
requested->fullscreen_output);
|
||||||
} else if (!view->maximized && requested->maximized) {
|
} else if (!view->maximized && requested->maximized) {
|
||||||
view_maximize(view, true,
|
view_maximize(view, true,
|
||||||
/*store_natural_geometry*/ true);
|
/*store_natural_geometry*/ true);
|
||||||
|
} else if (view_is_floating(view)) {
|
||||||
|
position_xdg_toplevel_view(view);
|
||||||
}
|
}
|
||||||
|
|
||||||
view_moved(view);
|
view_moved(view);
|
||||||
|
|
|
||||||
|
|
@ -534,7 +534,7 @@ map(struct view *view)
|
||||||
if (!view->been_mapped) {
|
if (!view->been_mapped) {
|
||||||
view_set_decorations(view, want_deco(xwayland_surface));
|
view_set_decorations(view, want_deco(xwayland_surface));
|
||||||
|
|
||||||
if (!view->maximized && !view->fullscreen) {
|
if (view_is_floating(view)) {
|
||||||
set_initial_position(view, xwayland_surface);
|
set_initial_position(view, xwayland_surface);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -549,7 +549,7 @@ map(struct view *view)
|
||||||
view->been_mapped = true;
|
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);
|
top_left_edge_boundary_check(view);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue