CSD: Fix no fullscreen at startup in some applications without ssd

This commit is contained in:
ARDiDo 2022-01-29 10:44:15 -05:00
parent 3658c2bfb3
commit e2cca1f040
2 changed files with 12 additions and 0 deletions

View file

@ -331,6 +331,8 @@ xdg_toplevel_view_map(struct view *view)
view->mapped = true; view->mapped = true;
view->surface = view->xdg_surface->surface; view->surface = view->xdg_surface->surface;
if (!view->been_mapped) { if (!view->been_mapped) {
struct wlr_xdg_toplevel_requested *requested =
&view->xdg_surface->toplevel->requested;
foreign_toplevel_handle_create(view); foreign_toplevel_handle_create(view);
view->ssd.enabled = has_ssd(view); view->ssd.enabled = has_ssd(view);
@ -340,6 +342,13 @@ xdg_toplevel_view_map(struct view *view)
} }
update_padding(view); update_padding(view);
if (!view->fullscreen && requested->fullscreen) {
view_set_fullscreen(view, true,
requested->fullscreen_output);
} else if (!view->maximized && requested->maximized) {
view_maximize(view, true);
}
if (!view->maximized && !view->fullscreen) { if (!view->maximized && !view->fullscreen) {
position_xdg_toplevel_view(view); position_xdg_toplevel_view(view);
} }

View file

@ -255,6 +255,9 @@ static void
map(struct view *view) map(struct view *view)
{ {
view->mapped = true; view->mapped = true;
if (!view->fullscreen && view->xwayland_surface->fullscreen) {
view_set_fullscreen(view, true, NULL);
}
if (!view->maximized && !view->fullscreen) { if (!view->maximized && !view->fullscreen) {
view->x = view->xwayland_surface->x; view->x = view->xwayland_surface->x;
view->y = view->xwayland_surface->y; view->y = view->xwayland_surface->y;