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