diff --git a/protocol/xdg-shell.xml b/protocol/xdg-shell.xml index 68cf469..50c81b5 100644 --- a/protocol/xdg-shell.xml +++ b/protocol/xdg-shell.xml @@ -368,6 +368,95 @@ + + + These constaints allow the compositor to help position child surfaces + without intreraction from the client application, and to notify the + client of any constraint issues. + + Constraint issues may occur if the surface or another surface is moved + to clip either the edge of an output or another surface. + + This can be useful for compositors implementing physics type window + effects, non-overlaping windows or allowing the client to keep "popup" + windows open without having to rely on implicit grabs. + + An application should use the weakest constraint possible for correct + functionality. + + + The surface will be movable by the compositor. + + + The surface can be mirrored by the compositor and window co-ordinates + are guarenteed for this surface relative to its parent. + + Subsurfaces will not be mirrored and will be positioned as if mirrored + first along the parent axis and then along their height mid point. + + Decorations should be specified in this surface and then text and + position dependent content as a subsurface. + + Not all compositors will support this mode so the client should provide + an alternative should it fail. + + + The surface is resizable and window co-ordinates are guarenteed + for this surface relative to its parent. + + The compositor will suggest the maximum dimensions via configure events + to fit the surface onto the output without clipping. The client is free + to resize the surface or attempt to reposition the window if the surface + becomes too small. + + + The surface is rotatable about the window co-ordinates which are + guarenteed for this surface relative to its parent. + + + The root surface is scalable and window co-ordinates are + guarenteed for this surface relative to its parent. + + The parent and all child surfaces including this one will be scaled by + the compositor to fit onto the ouput. + + Not all compositors will support this mode so the client should provide + an alternative should it fail. + + + The root surface is resizable and window co-ordinates are + guarenteed for this surface relative to its parent. + + The compositor will suggest the maximum dimensions via configure events + to fit the root surface and all child surfaces onto the output without + clipping. The client should then resize the root surface and all + children or attempt to reposition the child or subsurface to fit inside + the maximum size. + + + + + + Advise the compositor a list of constraits for the surface. + + If the compositor cannot guarentee the constaint on the surface then it + will proceed to the next constraint in the list provided. + + If the client provides a positive value for max_left, max_up, max_right + or max_down then the movement for that axis will be limited to moving by + that amount that area. + + If the compositor is unable to reach a satisfactory constraint based on + the provided list then it will return to un-constrained functionality. + + + + + + + + +