1. 28 Feb, 2020 1 commit
    • mntmn's avatar
      xwayland: port rooted xwayland from wl_shell to xdg-shell protocol · 3d6efc4a
      mntmn authored
      Recently, rooted Xwayland crashes on wlroots-based compositors, because
      wlroots removed the deprecated wl_shell protocol.
      This MR fixes this by changing the code in question to the xdg-shell
      protocol. My motivation do this: on etnaviv-based embedded platforms,
      rooted Xwayland is much faster and doesn't cause UI rendering bugs
      compared to rootless Xwayland.
      Signed-off-by: default avatarLukas F. Hartmann <lukas@mntre.com>
      3d6efc4a
  2. 23 Feb, 2020 3 commits
    • Hans de Goede's avatar
      xwayland: Also hook screen's MoveWindow method · 10df0437
      Hans de Goede authored
      Not only hook the ResizeWindow method of the screen (which really is
      MoveAndResize) but also hook the MoveWindow method for checking if we
      need to setup a viewport for resolution change emulation.
      
      Our resolution change emulation check if the windows origin matches
      the monitors origin and the windows origin can also be changed by just
      a move without being resized.
      
      Also checking on a move becomes esp. important when we move to checking
      on changes to the top-level non-window-manager client (X11)Window instead
      of on changes to the xwl_window later on in this patch series.
      Acked-by: default avatarOlivier Fourdan <ofourdan@redhat.com>
      Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
      10df0437
    • Roman Gilg's avatar
      xwayland: Check emulation on client toplevel resize · 6d98f840
      Roman Gilg authored
      When a reparented window is resized directly check the emulation instead of
      doing this only when the window manager parent window is resized, what might
      never happen.
      
      For that to work we need to make sure that we compare the current size of the
      client toplevel when looking for an emulated mode.
      
      Changes by Hans de Goede:
      - Remove xwl_window x, y, width and height members as those are no longer used.
      - Add check for xwl_window_from_window() returning NULL.
      Signed-off-by: Roman Gilg's avatarRoman Gilg <subdiff@gmail.com>
      Acked-by: default avatarOlivier Fourdan <ofourdan@redhat.com>
      Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
      6d98f840
    • Hans de Goede's avatar
      xwayland: Cache client-id for the window-manager client · ded89300
      Hans de Goede authored
      Instead of iterating over all clients which are listening for events on the
      root window and checking if the client we are dealing with is the one
      listening for SubstructureRedirectMask | ResizeRedirectMask events and thus
      is the window-manager, cache the client-id of the window-manager in
      xwl_screen and use that when checking if a client is the window-manager.
      
      Note that we cache and compare the client-id rather then the ClienPtr,
      this saves reading the ClientPtr from the global clients array when doing
      the comparison.
      Suggested-by: default avatarOlivier Fourdan <ofourdan@redhat.com>
      Acked-by: default avatarOlivier Fourdan <ofourdan@redhat.com>
      Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
      ded89300
  3. 20 Dec, 2019 1 commit