diff --git a/protocol/wayland.xml b/protocol/wayland.xml
index 6d86abc0..a33c1d30 100644
--- a/protocol/wayland.xml
+++ b/protocol/wayland.xml
@@ -418,16 +418,40 @@
- Map the surface as a fullscreen surface. There are a number
- of options here: on which output? if the surface size doesn't
- match the output size, do we scale, change resolution, or add
- black borders? is that something the client controls? what
- about transient surfaces, do they float on top of the
- fullscreen? what if there's already a fullscreen surface on
- the output, maybe you can only go fullscreen if you're active?
+ Map the surface as a fullscreen surface. On the output the
+ surface is assigned to. The client can use different fulllscreen
+ method to fix the size mismatch issue: default, scale, driver
+ and fill. And the framerate parameter is used for "driver" method,
+ to indicate the preferred framerate. framerate=0 means that the
+ app does not care about framerate
+
+
+
+
+
+ Hints to indicate compositor how to deal with this fullscreen surface.
+ "default" means the client has no preference on fullscreen
+ behavior, policies are determined by compositor.
+ "scale" means the client prefers scaling by the compositor.
+ Scaling would always preserve surface's aspect ratio.
+ And the surface is centered.
+ "driver" means the client wants to switch video mode to the
+ smallest mode that can fit the client buffer. If the
+ sizes do not match, black borders are added.
+ "fill" means the client wants to add blackborders to the
+ surface. This would be preferring 1:1 pixel mapping
+ in the monitor native video mode. The surface is
+ centered.
+
+
+
+
+
+
+
Popup surfaces. Will switch an implicit grab into