1. 09 Dec, 2020 1 commit
  2. 09 Sep, 2020 2 commits
  3. 26 Aug, 2020 1 commit
  4. 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
  5. 17 Jul, 2020 1 commit
    • Vlad Zahorodnii's avatar
      Introduce started signal in Application · d1b35f30
      Vlad Zahorodnii authored
      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
  6. 01 Jun, 2020 1 commit
    • 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
  7. 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
  8. 18 Mar, 2020 1 commit
  9. 14 Mar, 2020 1 commit
  10. 04 Mar, 2020 2 commits
  11. 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
  12. 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:...
      15af09c7
  13. 14 Jan, 2020 1 commit
  14. 26 Nov, 2019 1 commit
  15. 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
  16. 29 Sep, 2019 1 commit
  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. 24 Sep, 2019 1 commit
  19. 23 Sep, 2019 4 commits
    • Vlad Zahorodnii's avatar
      Rename ShellClient to XdgShellClient · 168ea988
      Vlad Zahorodnii authored
      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
      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
      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
    • Vlad Zahorodnii's avatar
      Port QPA away from Wayland · bebe8120
      Vlad Zahorodnii authored
      Summary:
      So far wayland was used by internal clients to submit raster buffers
      and position themselves on the screen. While we didn't have issues with
      submitting raster buffers, there were some problems with positioning
      task switchers. Mostly, because we had effectively two paths that may
      alter geometry.
      
      A better approach to deal with internal clients is to let our QPA use
      kwin core api directly. This way we can eliminate unnecessary roundtrips
      as well make geometry handling much easier and comprehensible.
      
      The last missing piece is shadows. Both Plasma::Dialog and Breeze widget
      style use platform-specific APIs to set and unset shadows. We need to
      add shadows API to KWindowSystem. Even though some internal clients lack
      drop-shadows at the moment, I don't consider it to be a blocker. We can
      add shadows back later on.
      
      CCBUG: 386304
      
      Reviewers: #kwin, davidedmundson, romangg
      
      Reviewed By: #kwin, romangg
      
      Subscribers: romangg, kwin
      
      Tags: #kwin
      
      Maniphest Tasks: T9600
      
      Differential Revision: https://phabricator.kde.org/D22810
      bebe8120
  20. 22 Apr, 2019 1 commit
  21. 26 Feb, 2019 2 commits
    • David Edmundson's avatar
      [wayland] Finish initialising ShellClient only when commited to the surface · 2bad2b48
      David Edmundson authored
      Summary:
      Everything on the wl_surface is double buffered.
      
      When we create an XdgShell toplevel or popup we shouldn't treat it as
      attached until it's committed to the surface.
      
      A client should commit the surface after it's sent it's initial state of
      the Xdg topLevel; minimumSize, title, app_id, etc.
      
      By blocking sending configure events we will have flushed the correct
      initial state before sending a single atomic correct event to the
      client. It also adds a hook to re-evaluate rules now that all properties
      are set.
      
      Arguably this applies to WlShellSurface too, but I've left it unchanged
      as it's deprecated and hard to verify real client behaviour.
      
      Test Plan: Ran all unit tests
      
      Reviewers: #kwin, zzag
      
      Reviewed By: #kwin, zzag
      
      Subscribers: zzag, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D18583
      2bad2b48
    • Vlad Zahorodnii's avatar
      [libkwineffects] Make AnimationEffect::AniMap protected · dffd9777
      Vlad Zahorodnii authored
      Summary:
      We need AniMap only for test purposes so it would be better to make the
      typedef protected (and mark as internal as well).
      
      Test Plan: Compiles.
      
      Reviewers: #kwin, davidedmundson
      
      Reviewed By: #kwin, davidedmundson
      
      Subscribers: davidedmundson, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D17833
      dffd9777
  22. 01 Feb, 2019 3 commits
  23. 20 Jan, 2019 1 commit
  24. 12 Jan, 2019 1 commit
  25. 08 Jan, 2019 1 commit
    • Vlad Zahorodnii's avatar
      [autotests] Test popup open/close animations · 30b257be
      Vlad Zahorodnii authored
      Summary:
      The new test is similar to testToplevelOpenCloseAnimation. The
      main purpose of this test is to verify that the Fading Popups effect
      animates all sorts of popups, e.g. popup menus, tooltips, etc.
      
      testAnimateUserActionsPopup is skipped for now because stuff
      that animates unmapped clients is broken.
      
      Reviewers: #kwin, davidedmundson
      
      Reviewed By: #kwin, davidedmundson
      
      Subscribers: kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D17992
      30b257be
  26. 07 Jan, 2019 1 commit
  27. 05 Jan, 2019 1 commit
    • Vlad Zahorodnii's avatar
      [autotests] Avoid useless waits in testToplevelOpenCloseAnimation · 72b9a75c
      Vlad Zahorodnii authored
      Summary:
      Use QTRY_VERIFY instead of qWait + QVERIFY to avoid useless waits.
      Effects like scale or glide don't last longer than 200ms.
      
      Test Plan:
      Before:
          $ dbus-run-session ctest -R testToplevelOpenCloseAnimation
          Test project /home/vlad/Workspace/KDE/build/kde/workspace/kwin
              Start 123: kwin-testToplevelOpenCloseAnimation
          1/2 Test #123: kwin-testToplevelOpenCloseAnimation ...............   Passed    6.43 sec
              Start 124: kwin-testToplevelOpenCloseAnimation-waylandonly
          2/2 Test #124: kwin-testToplevelOpenCloseAnimation-waylandonly ...   Passed    6.33 sec
      
          100% tests passed, 0 tests failed out of 2
      
          Total Test time (real) =  12.76 sec
      
      After:
          $ dbus-run-session ctest -R testToplevelOpenCloseAnimation
          Test project /home/vlad/Workspace/KDE/build/kde/workspace/kwin
              Start 123: kwin-testToplevelOpenCloseAnimation
          1/2 Test #123: kwin-testToplevelOpenCloseAnimation ...............   Passed    2.05 sec
              Start 124: kwin-testToplevelOpenCloseAnimation-waylandonly
          2/2 Test #124: kwin-testToplevelOpenCloseAnimation-waylandonly ...   Passed    2.00 sec
      
          100% tests passed, 0 tests failed out of 2
      
          Total Test time (real) =   4.05 sec
      
      Reviewers: #kwin, davidedmundson
      
      Reviewed By: #kwin, davidedmundson
      
      Subscribers: davidedmundson, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D17989
      72b9a75c
  28. 14 Dec, 2018 1 commit
    • Vlad Zahorodnii's avatar
      [autotests] Test window open/close animations · e86d8461
      Vlad Zahorodnii authored
      Summary:
      The idea behind this autotest is to verify that different window
      open/close animation effects behave similarly.
      
      Currently, we just check whether Fade/Glide/Scale effect tries to animate
      the appearing or the disappearing of toplevels. In the future, the
      autotest will be extended to verify that there are no conflicts between
      those three effects and the Login/Logout effect, etc.
      
      Test Plan: Ran the test, found a bug in the Fade effect, fixed it.
      
      Reviewers: #kwin, graesslin
      
      Reviewed By: #kwin, graesslin
      
      Subscribers: kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D17526
      e86d8461