Skip to content
  • Alexandros Frantzis's avatar
    xdg-shell: Allow fullscreen surfaces to not cover the whole screen · f6bd2129
    Alexandros Frantzis authored and Daniel Stone's avatar Daniel Stone committed
    
    
    The wording of the xdg-shell protocol allows surfaces to not cover the
    whole screen when they are made fullscreen. From the description of the
    fullscreen state in xdg-shell:
    
      The window geometry specified in the configure event is a maximum; the
      client cannot resize beyond it. For a surface to cover the whole
      fullscreened area, the geometry dimensions must be obeyed by the
      client.
    
    The last sentence is the condition for fullscreen coverage, not a
    requirement.
    
    This commit updates the code to not flag size mismatches for fullscreen
    surfaces as a protocol error when the surface fits within the screen. In
    such cases, the shell is responsible for centering surfaces
    appropriately and also for obscuring other screen content as described
    in the xdg_toplevel.set_fullscreen request description (and, indeed,
    desktop-shell does all this).
    
    For reference, contrast with the corresponding, stricter wording in the
    obsolete xdg-shell-unstable-v6 protocol for the fullscreen state:
    
      The window geometry specified in the configure event must be obeyed by
      the client.
    
    Signed-off-by: default avatarAlexandros Frantzis <alexandros.frantzis@collabora.com>
    f6bd2129