shell: restore correct layer in shell_unset_fullscreen
This fixes the bug where surface is above panel_layer just after it is restored from fullscreen mode. How to reproduce: * move surface under panel * set surface fullscreen * restore surface to normal mode
This commit is contained in:
committed by
Kristian Høgsberg
parent
a6b63d0f67
commit
3e3862c3bc
@@ -1421,6 +1421,7 @@ get_default_output(struct weston_compositor *compositor)
|
|||||||
static void
|
static void
|
||||||
shell_unset_fullscreen(struct shell_surface *shsurf)
|
shell_unset_fullscreen(struct shell_surface *shsurf)
|
||||||
{
|
{
|
||||||
|
struct workspace *ws;
|
||||||
/* undo all fullscreen things here */
|
/* undo all fullscreen things here */
|
||||||
if (shsurf->fullscreen.type == WL_SHELL_SURFACE_FULLSCREEN_METHOD_DRIVER &&
|
if (shsurf->fullscreen.type == WL_SHELL_SURFACE_FULLSCREEN_METHOD_DRIVER &&
|
||||||
shell_surface_is_top_fullscreen(shsurf)) {
|
shell_surface_is_top_fullscreen(shsurf)) {
|
||||||
@@ -1442,6 +1443,10 @@ shell_unset_fullscreen(struct shell_surface *shsurf)
|
|||||||
&shsurf->rotation.transform.link);
|
&shsurf->rotation.transform.link);
|
||||||
shsurf->saved_rotation_valid = false;
|
shsurf->saved_rotation_valid = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ws = get_current_workspace(shsurf->shell);
|
||||||
|
wl_list_remove(&shsurf->surface->layer_link);
|
||||||
|
wl_list_insert(&ws->layer.surface_list, &shsurf->surface->layer_link);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
|
|||||||
Reference in New Issue
Block a user