Skip to content
  • Vlad Zahorodnii's avatar
    Adapt to input region changes in kwayland-server · 41d431de
    Vlad Zahorodnii authored
    SurfaceInterface::inputIsInfinite() has been dropped. If the surface has
    no any input region specified, SurfaceInterface::input() will return a
    region that corresponds to the rect of the surface (0, 0, width, height).
    
    While the new design is more robust, for example it's no longer possible
    to forget to check SurfaceInterface::inputIsInfinite(), it has shown some
    issues in the input stack of kwin.
    
    Currently, acceptsInput() will return false if you attempt to click the
    server-side decoration for a surface whose input region is not empty.
    
    Therefore, it's possible for an application to set an input region with
    a width and a height of 1. If user doesn't know about KSysGuard or the
    possibility of closing apps via the task manager, they won't be able to
    close such an application.
    
    Another issue is that if an application has specified an empty input
    region on purpose, user will be still able click it. With the new
    behavior of SurfaceInterface::input(), this is no longer an issue and it
    is handled properly by kwin.
    41d431de