Only position fullscreen surface in surface->configure callback
We end up calling shell_configure_fullscreen() from activate(), where surface->buffer may be NULL. Instead, call it on initial map and first buffer attach after surface type change. Both code path come from the surface->configure callback where surface->buffer is know to be non-NULL. https://bugs.freedesktop.org/show_bug.cgi?id=51678
This commit is contained in:
+2
-2
@@ -1261,6 +1261,7 @@ set_surface_type(struct shell_surface *shsurf)
|
|||||||
shsurf->saved_x = surface->geometry.x;
|
shsurf->saved_x = surface->geometry.x;
|
||||||
shsurf->saved_y = surface->geometry.y;
|
shsurf->saved_y = surface->geometry.y;
|
||||||
shsurf->saved_position_valid = true;
|
shsurf->saved_position_valid = true;
|
||||||
|
center_on_output(surface, shsurf->fullscreen_output);
|
||||||
|
|
||||||
if (!wl_list_empty(&shsurf->rotation.transform.link)) {
|
if (!wl_list_empty(&shsurf->rotation.transform.link)) {
|
||||||
wl_list_remove(&shsurf->rotation.transform.link);
|
wl_list_remove(&shsurf->rotation.transform.link);
|
||||||
@@ -1401,8 +1402,6 @@ shell_configure_fullscreen(struct shell_surface *shsurf)
|
|||||||
struct weston_matrix *matrix;
|
struct weston_matrix *matrix;
|
||||||
float scale;
|
float scale;
|
||||||
|
|
||||||
center_on_output(surface, output);
|
|
||||||
|
|
||||||
if (!shsurf->fullscreen.black_surface)
|
if (!shsurf->fullscreen.black_surface)
|
||||||
shsurf->fullscreen.black_surface =
|
shsurf->fullscreen.black_surface =
|
||||||
create_black_surface(surface->compositor,
|
create_black_surface(surface->compositor,
|
||||||
@@ -2543,6 +2542,7 @@ map(struct desktop_shell *shell, struct weston_surface *surface,
|
|||||||
10 + random() % 400);
|
10 + random() % 400);
|
||||||
break;
|
break;
|
||||||
case SHELL_SURFACE_FULLSCREEN:
|
case SHELL_SURFACE_FULLSCREEN:
|
||||||
|
center_on_output(surface, shsurf->fullscreen_output);
|
||||||
shell_map_fullscreen(shsurf);
|
shell_map_fullscreen(shsurf);
|
||||||
break;
|
break;
|
||||||
case SHELL_SURFACE_MAXIMIZED:
|
case SHELL_SURFACE_MAXIMIZED:
|
||||||
|
|||||||
Reference in New Issue
Block a user