1. 12 May, 2021 1 commit
  2. 11 May, 2021 1 commit
  3. 09 Dec, 2020 1 commit
  4. 09 Sep, 2020 1 commit
  5. 26 Aug, 2020 1 commit
  6. 07 Aug, 2020 2 commits
    • Vlad Zahorodnii's avatar
      Prettify license headers · 4ce853e8
      Vlad Zahorodnii authored
      4ce853e8
    • Vlad Zahorodnii's avatar
      Switch to SPDX license markers · 1fb9f6f1
      Vlad Zahorodnii authored
      The main advantage of SPDX license identifiers over the traditional
      license headers is that it's more difficult to overlook inappropriate
      licenses for kwin, for example GPL 3. We also don't have to copy a
      lot of boilerplate text.
      
      In order to create this change, I ran licensedigger -r -c from the
      toplevel source directory.
      1fb9f6f1
  7. 17 Jul, 2020 1 commit
    • Vlad Zahorodnii's avatar
      Introduce started signal in Application · d1b35f30
      Vlad Zahorodnii authored and Vlad Zahorodnii's avatar Vlad Zahorodnii committed
      The new signal is emitted when the Application has fully been initialized.
      
      It allows us to change the startup sequence, for example create workspace
      before starting the Xwayland server, without making any adjustments in our
      test suit.
      d1b35f30
  8. 07 Jul, 2020 2 commits
  9. 01 Jun, 2020 2 commits
    • Vlad Zahorodnii's avatar
      [wayland] Destroy XdgToplevelClient and XdgPopupClient on unmap · df9e36ee
      Vlad Zahorodnii authored
      There are several ways to handle unmapping of a wl_surface. The first
      one is to destroy the associated AbstractClient instance. The second one
      is to transition the AbstractClient in a special state.
      
      The problem with the second approach is that it makes animations such as
      fade out more difficult to handle since effects in kwin are geared more
      towards the first approach (destroying AbstractClient).
      df9e36ee
    • Vlad Zahorodnii's avatar
      [wayland] Rework xdg-shell implementation · 31ea780d
      Vlad Zahorodnii authored
      Summary:
      This change splits the XdgShellClient class to better match existing
      abstractions in the xdg-shell protocol and fix a few issues related to
      sending configure events.
      
      In the new client classes, configure events are handled differently.
      Instead of blocking configure events, we try to send them as late as
      possible. Delaying configure events will let us merge changeMaximize()
      for X11 clients and Wayland clients and it also fixes the bug where
      we don't send the final configure event when user has finished resizing
      a window.
      
      Given that configure events are not sent immediately, XdgSurfaceClient
      keeps the last requested frame geometry and the last requested client
      geometry.
      
      This patch doesn't intend to fix all issues in kwin's implementation of
      the xdg-shell protocol. For example, we still handle surface unmapping
      very poorly.
      
      Test Plan: Tests pass.
      
      Reviewers: #kwin
      
      Subscribers: kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D27861
      31ea780d
  10. 02 Apr, 2020 1 commit
    • Aleix Pol Gonzalez's avatar
      Make it possible to have a separate cursor for the tablet · 6abd23ed
      Aleix Pol Gonzalez authored
      Summary:
      As is KWin only had 1 Cursor which was a singleton. This made it impossible for
      us to properly implement the tablet (as in drawing tablets) support and show where
      we're drawing.
      This patch makes it possible to have different Cursors in KWin, it makes all the
      current code still follow the mouse but the tablet can still render a cursor.
      
      Test Plan: Tests pass, been using it and works as well as before but with beautiful tablet cursors.
      
      Reviewers: #kwin, cblack, davidedmundson
      
      Reviewed By: #kwin, cblack, davidedmundson
      
      Subscribers: davidedmundson, cblack, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D28155
      6abd23ed
  11. 18 Mar, 2020 1 commit
  12. 14 Mar, 2020 1 commit
  13. 04 Mar, 2020 1 commit
    • Vlad Zahorodnii's avatar
      Use AbstractClient instead of XdgShellClient wherever possible · be759b7d
      Vlad Zahorodnii authored
      Summary:
      Currently, we have only one shell client type - XdgShellClient. We use
      it when we are dealing with Wayland clients. But it isn't really a good
      idea because we may need to support shell surfaces other than xdg-shell
      ones, for example input panel surfaces.
      
      In order to make kwin more extensible, this change replaces all usages
      of the XdgShellClient class with the AbstractClient class.
      
      Test Plan: Existing tests pass.
      
      Reviewers: #kwin, davidedmundson
      
      Reviewed By: #kwin, davidedmundson
      
      Subscribers: davidedmundson, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D27778
      be759b7d
  14. 22 Feb, 2020 4 commits
    • Nicolas Fella's avatar
      Revert "[kcm/effects] Clip ListView" · 7159684c
      Nicolas Fella authored
      Bad merge
      
      This reverts commit b7130442.
      7159684c
    • Nicolas Fella's avatar
      [kcm/effects] Clip ListView · b7130442
      Nicolas Fella authored
      Summary:
      Otherwise the content overflows the frame when scrolling.
      
      QQC2 scrollview docs say "ScrollView does not automatically clip its contents. If it is not used as a full-screen item, you should consider setting the clip property to true"
      
      Test Plan:
      Before:
      {F8121150}
      
      After:
      {F8121152}
      
      Reviewers: #kwin, #plasma, ngraham
      
      Reviewed By: ngraham
      
      Subscribers: ngraham, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D27558
      b7130442
    • Nicolas Fella's avatar
      Revert "[kcm/effects] Clip ListView" · cdc5ea19
      Nicolas Fella authored
      Bad merge
      
      This reverts commit 5babf52d.
      cdc5ea19
    • Nicolas Fella's avatar
      [kcm/effects] Clip ListView · 5babf52d
      Nicolas Fella authored
      Summary:
      Otherwise the content overflows the frame when scrolling.
      
      QQC2 scrollview docs say "ScrollView does not automatically clip its contents. If it is not used as a full-screen item, you should consider setting the clip property to true"
      
      Test Plan:
      Before:
      {F8121150}
      
      After:
      {F8121152}
      
      Reviewers: #kwin, #plasma, ngraham
      
      Reviewed By: ngraham
      
      Subscribers: ngraham, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D27558
      5babf52d
  15. 12 Feb, 2020 1 commit
    • Vlad Zahorodnii's avatar
      Introduce Toplevel::frameGeometryChanged signal · 15af09c7
      Vlad Zahorodnii authored
      Summary:
      Currently we have two signals that are emitted when the Toplevel's geometry
      changes - geometryShapeChanged() and geometryChanged(). The former signal
      is used primarily to invalidate cached window quads and the latter is
      sort of emitted when the frame geometry changes. But it's not that easy. We
      have a bunch of connects that link those signals together...
      
      The worst part about all of this is that the window quads cache gets
      invalidated every time a geometry update occurs, for example when user
      moves a window around on the screen.
      
      This change introduces a new signal and deprecates the existing geometryChanged
      signal. frameGeometryChanged is similar to geometryChanged except that it is
      emitted when an _actual_ geometry change has occurred.
      
      We do still emit geometryShapeChanged signal. However, in long term, we
      need to get rid of this signal or come up with something that makes sense
      and doesn't require us to waste computational resources.
      
      Reviewers: #kwin, davidedmundson
      
      Reviewed By: #kwin, davidedmundson
      
      Subscribers: davidedmundson, romangg, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D26863
      15af09c7
  16. 02 Oct, 2019 1 commit
    • Vlad Zahorodnii's avatar
      Rename geometry property to frameGeometry · 7d4471eb
      Vlad Zahorodnii authored
      Summary:
      In order to properly implement xdg_surface.set_window_geometry we need
      two kinds of geometry - frame and buffer. The frame geometry specifies
      visible bounds of the client on the screen, excluding client-side drop
      shadows. The buffer geometry specifies rectangle on the screen that the
      attached buffer or x11 pixmap occupies on the screen.
      
      This change renames the geometry property to frameGeometry in order to
      reflect the new meaning assigned to it as well to make it easier to
      differentiate between frame geometry and buffer geometry in the future.
      
      Reviewers: #kwin
      
      Subscribers: kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D24334
      7d4471eb
  17. 25 Sep, 2019 1 commit
    • Vlad Zahorodnii's avatar
      Rename Client to X11Client · ffcbe24e
      Vlad Zahorodnii authored
      Summary:
      Currently each managed X11 client is represented with an instance of
      Client class, however the name of that class is very generic and the
      only reason why it's called that way is because historically kwin
      was created as an x11 window manager, so "Client" was a sensible choice.
      
      With introduction of wayland support, things had changed and therefore
      Client needs to be renamed to X11Client in order to better reflect what
      that class stands for.
      
      Renaming of Client to X11Client was agreed upon during the last KWin
      sprint.
      
      Test Plan: Compiles, the test suite is still green.
      
      Reviewers: #kwin, romangg
      
      Reviewed By: #kwin, romangg
      
      Subscribers: romangg, davidedmundson, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D24184
      ffcbe24e
  18. 23 Sep, 2019 3 commits
    • Vlad Zahorodnii's avatar
      Rename ShellClient to XdgShellClient · 168ea988
      Vlad Zahorodnii authored and Vlad Zahorodnii's avatar Vlad Zahorodnii committed
      Summary:
      Rename ShellClient to XdgShellClient in order to reflect that it
      represents only xdg-shell clients.
      
      Test Plan: Compiles, tests still pass.
      
      Reviewers: #kwin
      
      Subscribers: kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D23589
      168ea988
    • Vlad Zahorodnii's avatar
      [wayland] Drop xdg-shell v5 support · 665ec0a5
      Vlad Zahorodnii authored and Vlad Zahorodnii's avatar Vlad Zahorodnii committed
      Summary:
      Drop xdg-shell v5 support since this protocol is obsolete and all popular
      wayland compositors already did that.
      
      Reviewers: #kwin, davidedmundson
      
      Reviewed By: #kwin, davidedmundson
      
      Subscribers: kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D23573
      665ec0a5
    • Vlad Zahorodnii's avatar
      [autotests] Don't test wl-shell clients · d92d6e77
      Vlad Zahorodnii authored and Vlad Zahorodnii's avatar Vlad Zahorodnii committed
      Summary:
      This change removes all traces of wl-shell in the test suite. That's a
      prerequisite for dropping wl-shell support in KWin.
      
      Given that wl-shell and xdg-shell are not interchangeable, some tests
      were removed and initialization sequence in some tests was adjusted.
      
      The most notable change is ensuring that each plasmashell window sets
      its role and initial position before committing the surface. Setting
      those properties before the first surface commit is important because
      our window placement code needs to know window type in order to
      avoid maximizing panels, popups, etc.
      
      Reviewers: #kwin, davidedmundson
      
      Reviewed By: #kwin, davidedmundson
      
      Subscribers: kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D23561
      d92d6e77
  19. 12 Sep, 2019 1 commit
  20. 30 Jul, 2019 2 commits
  21. 22 Apr, 2019 1 commit
  22. 09 Apr, 2019 1 commit
  23. 20 Mar, 2019 1 commit
    • Marco Martin's avatar
      virtualkeyboard: resize the focused window to make room for the keyboard · 6bc2ddd5
      Marco Martin authored
      Summary:
      alternative approach: try to resize the winidow to make room for the keyboard.
      the new input wayland protocol doesn't have anymore the overlap rectangle (and it would not be going to work with qwidget apps anyways)
      
      in the future will probably be needed anextension to the input protocol v3 which partially gets back this, tough window resizing is needed regardless
      
      what's missing: the resize should be "temporary" and the window should be restored to its previous geometry when the keyboard closes
      
      Test Plan: tested with test QML code
      
      Reviewers: #plasma, #kwin, bshah, graesslin, romangg, davidedmundson
      
      Reviewed By: #plasma, #kwin, romangg, davidedmundson
      
      Subscribers: nicolasfella, mart, kwin, davidedmundson, graesslin
      
      Tags: #kwin
      
      Maniphest Tasks: T9815
      
      Differential Revision: https://phabricator.kde.org/D18818
      6bc2ddd5
  24. 20 Jan, 2019 1 commit
  25. 31 Aug, 2018 1 commit
    • Vlad Zahorodnii's avatar
      Clean up includes · 624a4531
      Vlad Zahorodnii authored
      Summary:
      * effects.h includes client.h and forward declares Client, both at the
        same time. Thus, delete the include;
      
      * the blur effect includes effects.h. That, most likely, is a leftover
        after 3f5bf65a.
      
      Test Plan: Compiles.
      
      Reviewers: #kwin, davidedmundson
      
      Reviewed By: #kwin, davidedmundson
      
      Subscribers: kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D15191
      624a4531
  26. 25 Sep, 2017 1 commit
    • David Edmundson's avatar
      XdgV6 - Kwin side · e492f9e2
      David Edmundson authored
      Summary:
      Adds XDGV6 support for the kwin side.
      
      Popup placement support is limited to the stuff v5 had,
      a simple offset, rather than the awesome new positioner.
      
      But Qt doesn't make use of it yet either.
      Also ideally we should do all the positioning before sending the first
      configure, but again Qt doesn't actually do anything with that anyway.
      
      Also integrate pinging clients
      
      Test Plan: gtk3-demo  works nicely.
      
      Reviewers: #plasma, graesslin, mart
      
      Reviewed By: #plasma, graesslin
      
      Subscribers: mart, graesslin, kwin, plasma-devel, #kwin
      
      Tags: #plasma
      
      Differential Revision: https://phabricator.kde.org/D6591
      e492f9e2
  27. 29 Jul, 2017 1 commit
    • Martin Flöser's avatar
      Replace Workspace::slotWindowQuickTileFoo by a quickTileWindow with argument · 64da6c8d
      Martin Flöser authored
      Summary:
      Thanks to std::bind we don't need that many different slots to setup the
      global shortcut connections. Instead we can have one shared
      implementation which takes the argument and passes it to the window.
      
      To support std::bind arguments in kwinbindings the initShortcut method
      and dependencies are adjusted as well as a new macro is added.
      
      As I don't want to include abstract_client.h in workspace.h a new enum
      is created for the quick tiling flags used in Workspace. This caused a
      larger refactoring as the change to an enum class also caused quite some
      changes.
      
      Test Plan: Affected test cases still pass
      
      Reviewers: #kwin, #plasma
      
      Subscribers: plasma-devel, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D6783
      64da6c8d
  28. 30 Jan, 2017 1 commit
  29. 29 Jan, 2017 1 commit
  30. 26 Jan, 2017 1 commit
    • Martin Flöser's avatar
      Improve MoveResizeWindowTest::testMove expected fail cases · de444194
      Martin Flöser authored
      Instead of having an expect fail on every check for the count of signals
      emitted for clientStepUserMovedResized we reset after the first one which
      is the actual issue.
      
      Thus we can properly check that in the other cases the signals are
      emitted.
      de444194
  31. 15 Dec, 2016 1 commit