1. 29 May, 2020 4 commits
  2. 28 May, 2020 3 commits
  3. 27 May, 2020 2 commits
  4. 26 May, 2020 7 commits
    • Johnny Jazeix's avatar
      fix compilation, remove extra parenthesis · 00b28562
      Johnny Jazeix authored
    • Méven Car's avatar
      Wayland: avoid binding disabled outputs to surfaces · f0f465cc
      Méven Car authored
      We don't need to bind disabled outputs to surfaces that overlaps them.
      This prevents error down the line and warnings about ignoring surface.enter events with Qt.
      BUG: 419749
    • Méven Car's avatar
      Wayland: avoid binding disabled outputs to surfaces · 797ccca4
      Méven Car authored
      We don't need to bind disabled outputs to surfaces that overlaps them.
      This prevents error down the line and warnings about ignoring surface.enter events with Qt.
      BUG: 419749
    • David Edmundson's avatar
    • David Edmundson's avatar
      [xwl] Update to kwaylandserver changes · 1c2f23d3
      David Edmundson authored
      Change so we track track and set a DataSource instead of a DataDevice
      This means we have to reverse a connection:
      - we need to update Seat with our selection only when our selection is
      received by the DataDeviceInterface
      - we no longer need to track and watch a dataDevice for changes after
      the seat emits selectionChange
      Change so that we handle an AbstractDataSource. Meaning we can paste
      from clipboard managers.
      Testing done:
      There is an existing xwayland-selections_test
      This still passes.
      Copied from:
      wl-copy(wlr) to firefox (x)
      firefox to wl-paste
      firefox to kate (wayland)
      kate to firefox
      Reviewers: #kwin, zzag
      Reviewed By: #kwin, zzag
      Subscribers: cblack, kwin
      Tags: #kwin
      Differential Revision: https://phabricator.kde.org/D29332
    • David Edmundson's avatar
      Correctly align natural layout in present windows · e3044e61
      David Edmundson authored
      Present windows works as follows:
      - It moves all windows about until nothing is overlapping with any
      other window.
      - This doesn't resize anything so ultimately we end up with a new
      co-ordinate space that's bigger than the screen depending on the amount
      of overlap.
       - We then render this whole view transformed to the screen
      The rectangle "bounds" is in overviewpixels, with "scale" being the
      ratio to convert to screen pixels.
      When adjusting the new bounds there's an attempt to centre align things.
      As bounds is in "overviewpixels" we multiply references to the previous
      bounds by scale, and divide everything through at the end. bounds.x/y
      were missed.
      This is mostly unoticable except on massive super-ultra-wide monitors
      which will otherwise have a tendency to shift to the left.
      Test Plan:
      Kai created a whole new test framework for this code that copy pasted
      this algorithm then showed mock windows as rectangles
      Reviewers: #kwin, apol, broulik, zzag
      Reviewed By: #kwin, apol, broulik, zzag
      Subscribers: zzag, apol, kwin
      Tags: #kwin
      Differential Revision: https://phabricator.kde.org/D29705
    • David Edmundson's avatar
  5. 24 May, 2020 1 commit
  6. 23 May, 2020 1 commit
    • Noah Davis's avatar
      Change CommandAllKey to Meta · f474686a
      Noah Davis authored
      Summary: Alt + Left Click to move windows has a tendency to conflict with creative workflow apps. While Alt can be changed to Meta in KWin's settings, Alt + Left Click shortcuts often cannot be customized in apps. Rather than making every user who runs into this problem change their settings, we should change our default settings to improve KWin's default usability. The fact that Alt + Left Click to move windows is older does not matter. We are trying to use Meta for global/shell shortcuts anyway.
      BUG: 399375
      Test Plan: The relevant parts of the relevant tests pass. kwin-testInternalWindow fails, but for unrelated reasons that have something to do with XWayland.
  7. 22 May, 2020 2 commits
    • Nate Graham's avatar
      Position OSD a bit farther down · 85b9aea5
      Nate Graham authored
      A common user complains is that our OSDs--particularly the volume OSD--are too intrusive
      and get in the way of the screen content. For example when adjusting the volume while
      watching a full-screen video, the volume change OSD will typically appear right in the
      middle of an actor's face.
      D20569 was an attempt to use a horizontal OSD to alleviate this issue. It mostly worked,
      but IMO it was still positioned too high up.
      This patch moved the placement down a little bit to make the OSD appear even farther from
      the center of the screen to make it less likely to
      I tried not to move it down too far or else it would interfere with subtitles in videos.
      Test Plan:
      With D20569:
      Reviewers: #kwin, #vdg, broulik, ndavis, zzag
      Reviewed By: #kwin, #vdg, ndavis, zzag
      Subscribers: meven, ndavis, niccolove, baberts, davidedmundson, filipf, zzag, kori, kwin
      Tags: #kwin
      Differential Revision: https://phabricator.kde.org/D29263
    • Ismael Asensio's avatar
      [kcm/kwinrules] Extend upper limit of position and size spinners · 91eee99f
      Ismael Asensio authored
      Currently, the spinners used to edit position and size rules have an upper
      limit of 4098, which may be not enough for wide/hdpi/mutiple screens.
      The property itself has no such limit in the `.kcfg` schema
      This is just an issue with the editor.
      BUG: 421892
      FIXED-IN: 5.19
  8. 21 May, 2020 4 commits
    • Vlad Zahorodnii's avatar
      [decoration] Fix propagation of client size · 621b2e1c
      Vlad Zahorodnii authored
      Even though the frame geometry and the client geometry have a connection
      between themselves, it doesn't mean that the frame geometry will change
      if the client geometry has changed and vice versa. For example, it can be
      the case when the border size changes. The frame geometry won't change,
      but the client geometry will.
      In general, similar to the frameGeometryChanged signal, we need another
      signal that is emitted when the client geometry has been changed that
      can be used then in DecoratedClientImpl.
      Unfortunately, 5.19 release is around the corner and I would prefer not
      to do any geometry-related changes in order to avoid introducing new
      In order to fix the propagation of the client size to decorations, this
      change ports DecoratedClientImpl from frameGeometryChanged to a signal
      that is emitted whenever geometry of any kind has been changed.
      BUG: 419080
      FIXED-IN: 5.19.0
    • Bhushan Shah's avatar
      Merge branch 'Plasma/5.19' · 6caad6ee
      Bhushan Shah authored
    • Bhushan Shah's avatar
      [platforms/drm] show cursor only when it is enabled · b2df11bf
      Bhushan Shah authored
      In previous code we used to update/show cursor even when the pointer
      device was present, e.g mobile device. Guard it behind the cursor
      enabled check.
      BUG: 418977
      FIXED-IN: 5.19.0
    • Tiago Corrêa's avatar
      scripting: Provide methods to create and remove virtual desktops · 232984c1
      Tiago Corrêa authored
      Summary: There are methods to create and remove virtual desktops via dbus, but I think it would be convenient to provide these methods for KWin scripts as well.
      Reviewers: #kwin, zzag
      Reviewed By: #kwin, zzag
      Subscribers: zzag, kwin
      Tags: #kwin
      Differential Revision: https://phabricator.kde.org/D29786
  9. 20 May, 2020 1 commit
    • Ilya Bizyaev's avatar
      GIT_SILENT: add KWin icon as repository logo · 3e337603
      Ilya Bizyaev authored
      logo.png is used by KDE's Gitlab infrastructure to set
      repository's logo in the web UI. This is the preferred
      way of configuring repository logos to avoid exhausting
      sysadmin team's attention.
  10. 19 May, 2020 2 commits
    • Méven Car's avatar
      Drm backend: delete DrmOutput* after DrmScreens notified its users · b77d2911
      Méven Car authored
      Plug-in and out HDMI screen
      Crash when pluggin-in
      No crash
    • Vlad Zahorodnii's avatar
      [scene] Re-build window quads after creating a WindowPixmap · 7569bdf6
      Vlad Zahorodnii authored
      In order to generate window quads for a window, the scene needs a valid
      WindowPixmap tree. If it's time to render the window, the scene will
      build window quads for the contents, the server-side window decoration,
      the drop-shadow and cache the resulting window quads. With this way of
      generating window quads, we need the window pixmap tree to be valid,
      or else no contents window quads will be generated.
      While the window pixmap tree is guaranteed to be valid at the time of
      generation of window quads for Wayland and X11 clients, this is not the
      case for Xwayland clients.
      When an Xwayland client is created, some time may pass between the
      moment it's been created and the moment when a regular wayland surface
      has been associated with the xwayland window. If the compositor decides
      to render the Xwayland client in that short period of time, the window
      quads cache won't have window quads cache.
      In order to work around the weird asynchronous behavior of Xwayland
      clients, this change makes the scene discard the window quad cache when
      a new window pixmap has been created. This will ensure that the current
      window quads are always in sync with the current window pixmap tree.
  11. 18 May, 2020 2 commits
    • Ismael Asensio's avatar
      [kcm/kwinrules] Detect virtual desktops in Wayland · bd5e34f5
      Ismael Asensio authored
      The list of virtual desktops is retrieved using a DBus method, instead of
      `KWindowSystem`, to make it work both in Wayland (as well as X11).
      FIXED-IN: 5.20
      BUG: 416165
    • Ismael Asensio's avatar
      [kcm/kwinrules] Fix Placement setting · fdd9ed53
      Ismael Asensio authored
      Since the port to KConfigXT, the setting "placement" is stored using the enum value, instead of a string equivalent.
      This updates the kcm model to be able to communicate this property with the config schema.
      BUG: 421586
      FIXED-IN: 5.19.0
      Test Plan:
      - In a rule set the "Initial Placement" property
      - The value is stored in `~/.config/kwinrulesrc`
      - Close/reopen the kcm. The placement value is correctly loaded.
      Reviewers: #kwin, #plasma, zzag
      Reviewed By: #kwin, #plasma, zzag
      Subscribers: zzag, kwin
      Tags: #kwin
      Differential Revision: https://phabricator.kde.org/D29790
  12. 17 May, 2020 1 commit
  13. 15 May, 2020 6 commits
  14. 14 May, 2020 4 commits
    • Aleix Pol Gonzalez's avatar
      Fix TestXdgShellClient::testDesktopFileName · 5b5a9957
      Aleix Pol Gonzalez authored
      Allows AbstractClient::m_desktopFileName be an absolute path, which is
      used by tests.
      Test Plan: Test passes, other things still work, including telegram.
      Reviewers: #kwin, zzag
      Reviewed By: #kwin, zzag
      Subscribers: kwin
      Tags: #kwin
      Differential Revision: https://phabricator.kde.org/D29758
    • Aleix Pol Gonzalez's avatar
      wayland_server: Improve debug message, reduce duplicates · d6e119f4
      Aleix Pol Gonzalez authored
      Demote the "interface not granted" message from a warning to debug
      and improve the wording a bit.
      We are listing all the interfaces, it's not like we're not granting an interface
      that the application wants, it's that we're not offering an interface to an application
      because it didn't opt in.
      Only report every miss once, to reduce the noise.
      Test Plan: ran kwin
      Reviewers: #kwin, davidedmundson
      Reviewed By: #kwin, davidedmundson
      Subscribers: kwin
      Tags: #kwin
      Differential Revision: https://phabricator.kde.org/D29759
    • Nate Graham's avatar
      Improve partial maximization strings · 22bb30ed
      Nate Graham authored
      Summary: Take two on D29729
      Reviewers: zzag, #kwin
      Reviewed By: zzag, #kwin
      Subscribers: kwin
      Tags: #kwin
      Differential Revision: https://phabricator.kde.org/D29755
    • Vlad Zahorodnii's avatar
      Store normal clients and desktop clients in the same list · fc3b16f8
      Vlad Zahorodnii authored
      On X11, Workspace stores windows in two lists. One with desktop windows
      and the other one with all other windows. On Wayland, desktop windows
      and normal windows are stored in the same list - m_allClients.
      In order to unify scripting on X11 and Wayland, this change makes the
      Workspace class store X11 desktop windows and normal X11 windows in the
      same list. It's the responsibility of scripts to filter desktop windows.
      Reviewers: #kwin, apol
      Reviewed By: apol
      Subscribers: apol, kwin
      Tags: #kwin
      Differential Revision: https://phabricator.kde.org/D29522