compositor-drm: Fix a crash with a fullscreen surface with driver mode
compositor-drm: Fix a crash with a fullscreen surface with driver mode

If there was a fullscreen surface using driver mode when a vt switch is
triggered, but something caused it to be gone when switching back (such
as the client being killed), a call to drm_output_switch_mode() is made
to restore the old mode, and that sets the output's current drm_fb to
NULL, so that the new mode is set drm_output_repaint(). This led to a
crash in vt_func(), because it tried to access output->current for
restoring the old mode.

Fix this by not setting the mode if there's no current fb. Instead,
schedule a repaint so that the mode is set in drm_output_repaint().

https://bugs.freedesktop.org/show_bug.cgi?id=60675

sir-murray/weston,Fantu/compositor-spice,giucam/weston,Fantu/compositor-spice,kwm81/weston,kwm81/weston,udoprog/weston,sir-murray/weston,Tarnyko/weston-xdg_surface_present,xorgy/weston,jonnylamb/weston,giucam/weston,mchalupa/weston,eyolfson/weston,krezovic/weston,Fantu/compositor-spice,xorgy/weston,eyolfson/weston,Gnurou/weston,udoprog/weston,mchalupa/weston,Gnurou/weston,krezovic/weston,jonnylamb/weston,Tarnyko/weston-xdg_surface_present