shell: Implement "driver" method of fullsceen.
Switching display mode may happen when:
1. The fullscreen surface is at top most in fullscreen layer and with
"driver" method. Shell will switch output mode to match the surface
size. If no matched mode found, fall back to "fill" method.
2. The top fullscreen surface is destroyed or unset. Switch back to the
origin mode.
diff --git a/src/compositor-wayland.c b/src/compositor-wayland.c
index 93094b0..afd9121 100644
--- a/src/compositor-wayland.c
+++ b/src/compositor-wayland.c
@@ -456,6 +456,7 @@
/* FIXME: add shell_surface listener for resizing */
wl_shell_surface_set_toplevel(output->parent.shell_surface);
+ output->base.origin = output->base.current;
output->base.repaint = wayland_output_repaint;
output->base.destroy = wayland_output_destroy;
output->base.assign_planes = NULL;