1. 25 Oct, 2021 2 commits
    • Andrey Butirsky's avatar
      [wayland] fix ignored keyboard RepeatRate · 1dc40064
      Andrey Butirsky authored
      X11 can take float RepeatRate, Wayland - int only so the setting is to be
      Should be indistinguishable on usual rates.
      BUG: 443721
      (cherry picked from commit 4395caa2)
    • Vlad Zahorodnii's avatar
      kwineffects: Fix destruction of s_fbo with shared GLTexture objects · 1b1aef83
      Vlad Zahorodnii authored
      The WindowThumbnail item uses the GLTexture class. In order to destroy
      the thumbnail texture, the item will schedule a destroy job.
      This means that the GLTexture can be alive during or after graphics
      On the other hand, as an implementation detail, GLTexture::clear() may
      allocate a framebuffer object, which is going to be destroyed together
      with the last texture.
      Given that window thumbnail textures can be still alive after a graphics
      reset and the fact that GLTexturePrivate::s_fbo gets destroyed when the
      last texture is destroyed, kwin can end up trying to clear a decoration
      texture with now defunct s_fbo.
      Since the old old s_fbo is inert, the glBindFramebuffer() function will
      fail and the glClear() operation will affect the default framebuffer,
      thus leading to black flickering visual artifacts.
      In order to fix that issue, this change makes GLTexture destroy s_fbo
      unconditionally in GLTexturePrivate::cleanup() which is called whenever
      OpenGL stuff is about to tear down, e.g. due to graphics reset, etc.
      BUG: 443951
      (cherry picked from commit fda7e150)
  2. 24 Oct, 2021 2 commits
  3. 22 Oct, 2021 3 commits
    • Xaver Hugl's avatar
      platforms/drm: fix direct scanout check · 1738b44b
      Xaver Hugl authored
      (cherry picked from commit 49afd180)
    • David Edmundson's avatar
      Fix focus loss on decoration destruction · d87273d8
      David Edmundson authored and Andrey Butirsky's avatar Andrey Butirsky committed
      InputDeviceHandler keeps track of which client has focus, and whether
      the decoration or main window has focus.
      Should the decoration get destroyed whilst the decoration has focus we
      don't update correctly. This can happen when
      "BorderlessMaximizedWindows" is set, or if you use key presses whilst
      above the decoration.
      cleanupDecoration (which is an odd name) is called whenever a decoration
      gains or loses focus. Here we can connect for the decoration destruction
      and force a focus change.
      BUG: 411884
      (cherry picked from commit 566bfbff)
    • Xaver Hugl's avatar
      input: fix crash on touch quicktile · 5d0d55e9
      Xaver Hugl authored
      If the filter filters out touchDown it also has to always filter out the
      matching touchUp
      (cherry picked from commit 0c7d9785)
  4. 20 Oct, 2021 4 commits
  5. 19 Oct, 2021 3 commits
  6. 18 Oct, 2021 3 commits
    • Xaver Hugl's avatar
      platforms/drm: reverse output creation order · 1cce55f5
      Xaver Hugl authored
      This was inverted from 5.22, which switches plasma layouts and the default
      Xwayland primary screen.
      (cherry picked from commit 72af3093)
    • Vlad Zahorodnii's avatar
      x11: Properly unredirect windows if compositing is not possible · 140834e7
      Vlad Zahorodnii authored
      Before attempting to create scenes, kwin will redirect windows but if
      the opengl scene can't be created, it won't unredirect windows, which
      seems to cause issues on aarch64.
      BUG: 443953
      (cherry picked from commit 85f8a533)
    • Vlad Zahorodnii's avatar
      Restore old behavior of Workspace::clientArea(clientOpt, Toplevel) · 29588812
      Vlad Zahorodnii authored
      When geometry updates are blocked, the output doesn't get updated. This
      breaks Workspace::clientArea() overload that takes only the window.
      Previously, clientArea() would look up the output where the window is
      every time it's called, so the fact that the screen id or AbstractOutput
      is unsynchronized with the frame geometry was irrelevant.
      This change restores the old behavior as 5.23 is affected by the
      output() being out of sync with the frameGeometry(). Specifically, when
      kwin starts managing an X11 window, it will block geometry updates,
      setup the window, e.g. make it fullscreen, and unblock geometry updates.
      Since Workspace::clientArea(clientArea, Toplevel) uses the output(),
      X11Client::setFullScreen() will most likely put the X11 window at a
      wrong output if it's called inside X11Client::manage().
      BUG: 443787
      (cherry picked from commit 6d5fc9fd)
  7. 17 Oct, 2021 1 commit
  8. 15 Oct, 2021 3 commits
  9. 14 Oct, 2021 1 commit
    • Heiko Becker's avatar
      Heiko Becker authored
      Since the KF5 version requirement was incremented to 5.86 the build
      started to fail (at least with KF 5.87.0) due to deprecations.
  10. 13 Oct, 2021 1 commit
    • Aleix Pol Gonzalez's avatar
      pipewire: Fix downloading software-rotated textures · 26aab43f
      Aleix Pol Gonzalez authored and Aleix Pol Gonzalez's avatar Aleix Pol Gonzalez committed
      At the moment we'll be setting the YInverted setting, but in practice
      that won't have any effect as it only changes the render matrix and
      we'll end up streaming inverted textures.
      This change addresses it by rendering it into another texture first to
      resolve this situation and then download that new texture instead.
      (cherry picked from commit c0718249)
  11. 12 Oct, 2021 2 commits
  12. 11 Oct, 2021 1 commit
  13. 07 Oct, 2021 3 commits
    • Jonathan Esk-Riddell's avatar
      Update version number for 5.23.0 · ff5a251b
      Jonathan Esk-Riddell authored
    • Vlad Zahorodnii's avatar
      wayland: Improve default placement of pointer · 1854708f
      Vlad Zahorodnii authored
      Currently, the pointer is moved to the center of the workspace. However,
      on a multi-monitor setup, the workspace center may not be the same as
      the center of the output it's on. That's the case with my setup -
      1920x1080, 1920x1080, 1080x1920 (the monitors are laid out in a row from
      left to right).
      This change improves the default placement of the pointer by actually
      moving it to the center of the screen that contains the workspace center
      so the pointer doesn't end up at some "random" position from the user's
      point of view.
      (cherry picked from commit 4f3ff4fb)
    • Xaver Hugl's avatar
      platforms/drm: set DPMS property properly · 63d39d81
      Xaver Hugl authored
      (cherry picked from commit 9f69d4c9)
  14. 06 Oct, 2021 1 commit
  15. 05 Oct, 2021 1 commit
    • Vlad Zahorodnii's avatar
      Clear should_get_focus in Workspace::focusToNull() · fba3f1e7
      Vlad Zahorodnii authored
      On X11, there are four input models. With some input models, it's okay
      if the window manager calls XSetInputFocus(), with others, the wm has to
      ask the client to make a XSetInputFocus() request.
      If kwin wants a client to take input focus, kwin will add the client
      to the should_get_focus list, which contains all the windows that
      are about to get input focus. Clients are popped from the list upon
      receiving FOCUS_IN events.
      A client will be added to the should_get_focus list even if kwin thinks
      that the client already has input focus because communication between
      the wm and xorg is async, anything can happen with input focus in meanwhile.
      On the other hand, the wm may sometimes focus the null window if no
      window should contain the input focus. The issue is that the
      should_get_focus list is not cleaned up in that case, which can lead to
      Workspace::mostRecentlyActivatedClient() returning wrong client and
      possibly other async related issues.
      We don't have such madness on Wayland as the compositor is in charge of
      handling input focus.
      This change makes Workspace::focusToNull() clear the should_get_focus,
      which is reasonable. We need to deactivate "in-flight" focus requests.
      This also fixes the bug where fullscreen Wayland windows don't go above
      docks and panels due to Workspace::mostRecentlyActivatedClient() returning
      bad client.
      BUG: 439405
      BUG: 395919
      (cherry picked from commit e6c77a1d)
  16. 04 Oct, 2021 7 commits
  17. 03 Oct, 2021 1 commit
    • Xaver Hugl's avatar
      platforms/drm: remove redundant check for placeholder output · 10a048e5
      Xaver Hugl authored
      It's not necessary, the placeholder output already gets created in DrmBackend::removeOutput
      if necessary. More improtantly it's missing the check for shutdown, which
      may cause issues if the computer is turned off while no outputs are connected.
      (cherry picked from commit d83da1cd)
  18. 01 Oct, 2021 1 commit