shell: Keep shsurf->fullscreen_output set after unset_fullscreen()
When a fullscreen surface gets the maximized state, the function reset_surface_type() is called and that causes unset_fullscreen() to be called. That function would set the value of shsurf->fullscreen_output to NULL. However, since the surface still has the fullscreen state, it will be configured as a fullscreen surface again, and an attempt to access that field would cause the compositor to crash. Fix the crash by keeping the value of fullscreen_output around after unset_fullscreen(). This is safe since the value is only used when a surface has the fullscreen state and is replaced on a new request to make the surface fullscreen. https://bugs.freedesktop.org/show_bug.cgi?id=76867
This commit is contained in:
parent
facc0ccf06
commit
641796c31a
|
@ -2340,7 +2340,6 @@ unset_fullscreen(struct shell_surface *shsurf)
|
|||
shell_surface_is_top_fullscreen(shsurf)) {
|
||||
restore_output_mode(shsurf->fullscreen_output);
|
||||
}
|
||||
shsurf->fullscreen_output = NULL;
|
||||
|
||||
shsurf->fullscreen.type = WL_SHELL_SURFACE_FULLSCREEN_METHOD_DEFAULT;
|
||||
shsurf->fullscreen.framerate = 0;
|
||||
|
|
Loading…
Reference in New Issue