1. 16 Jan, 2020 1 commit
  2. 07 Jan, 2020 1 commit
    • Vlad Zahorodnii's avatar
      [nightcolor] Use a dedicated class for detection of system clock changes · e728460a
      Vlad Zahorodnii authored
      The ClockSkewNotifier provides a convenient way for monitoring system
      clock changes. One of the key ideas was to hide platform details from
      users of the class. This allows us to add a QTimer fallback path for
      operating systems that don't provide anything to detect system clock
      In long term, I would like to move the new class to Frameworks.
      Reviewers: #kwin, davidedmundson
      Reviewed By: #kwin, davidedmundson
      Subscribers: davidedmundson, kwin
      Tags: #kwin
      Differential Revision: https://phabricator.kde.org/D25962
  3. 10 Dec, 2019 1 commit
  4. 03 Dec, 2019 2 commits
  5. 26 Nov, 2019 1 commit
  6. 12 Nov, 2019 1 commit
  7. 05 Nov, 2019 1 commit
  8. 04 Nov, 2019 1 commit
    • David Edmundson's avatar
      Add KDEClangFormat cmake support · 0369011c
      David Edmundson authored
      This allows devs to run: "make clang-format" and format all files easily
      using the preset KDE clang format style
      This patch adds support so devs can easily test the intended formatting
      now, it doesn't change the code yet.
      Doing an initial run to commit everything will happen later.
      Test Plan:
      Ran script
      git diff was full of amazingly cleaned code
      See D25134
  9. 01 Nov, 2019 1 commit
    • David Edmundson's avatar
      Port one of session management connections state to a custom API · ec610fd7
      David Edmundson authored
      Currently kwin opens a second ICE connection to ksmserver in order to
      tell the state of kwin's whether we're logging out and saving clients or
      This requires that kwin launches after ksmserver to have the connection
      which is a dependency I want to break.
      Practically this code is already ksmserver specific as it relies on some
      custom code that sends the first saveState request to kwin first.
      Instead we can replace it with a bespoke IPC over DBus and siplify the
      code both end. This will allow several other future enhancements that we
      want with regards to handling the session state, as well as make an
      effort platform agnostic session management, as well as cleaning up some
      complex code.
      Ksmserver calls into kwin, rather than having kwin watch ksmserver state
      to allow us make sure it's race free.
      Reviewers: #kwin, zzag
      Reviewed By: #kwin, zzag
      Subscribers: romangg, zzag, kwin
      Tags: #kwin
      Differential Revision: https://phabricator.kde.org/D24862
  10. 29 Oct, 2019 2 commits
    • Jonathan Esk-Riddell's avatar
      Update version number for 5.17.2 · c42a4234
      Jonathan Esk-Riddell authored
    • Roman Gilg's avatar
      Dmabuf recovery on EGL reset · 7459aabc
      Roman Gilg authored
      The EGL platform might go away at any time through reconfiguration or because
      of a graphic error. KWin then resets the graphics. The dmabuf implementation
      must respect that and recover from a graphics reset by recreating all EGL
      images for existing buffer.
      This assumes that we won't change our graphics API mid-session and that
      supported plane and modifier configuration stays constant.
      In practise we remember all current dmabufs in a single map and only remove
      them if the client did destroy the resource.
      BUG: 411980
      CCBUG: 413403
      FIXED-IN: 5.17.2
      Test Plan: Applied screenedge configuration without crash.
      Reviewers: #kwin, zzag
      Reviewed By: #kwin, zzag
      Subscribers: fvogt, kwin
      Tags: #kwin
      Differential Revision: https://phabricator.kde.org/D24954
  11. 22 Oct, 2019 1 commit
  12. 10 Oct, 2019 3 commits
  13. 25 Sep, 2019 1 commit
    • Vlad Zahorodnii's avatar
      Rename Client to X11Client · ffcbe24e
      Vlad Zahorodnii authored
      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
      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
  14. 23 Sep, 2019 1 commit
  15. 19 Sep, 2019 2 commits
  16. 18 Sep, 2019 1 commit
  17. 17 Sep, 2019 2 commits
  18. 14 Sep, 2019 1 commit
  19. 10 Sep, 2019 1 commit
  20. 08 Sep, 2019 1 commit
  21. 30 Jul, 2019 1 commit
  22. 22 Jul, 2019 1 commit
    • Vlad Zahorodnii's avatar
      Run clang-tidy with modernize-use-override check · 8af2fa73
      Vlad Zahorodnii authored
      Currently code base of kwin can be viewed as two pieces. One is very
      ancient, and the other one is more modern, which uses new C++ features.
      The main problem with the ancient code is that it was written before
      C++11 era. So, no override or final keywords, lambdas, etc.
      Quite recently, KDE compiler settings were changed to show a warning if
      a virtual method has missing override keyword. As you might have already
      guessed, this fired back at us because of that ancient code. We had
      about 500 new compiler warnings.
      A "solution" was proposed to that problem - disable -Wno-suggest-override
      and the other similar warning for clang. It's hard to call a solution
      because those warnings are disabled not only for the old code, but also
      for new. This is not what we want!
      The main argument for not actually fixing the problem was that git
      history will be screwed as well because of human factor. While good git
      history is a very important thing, we should not go crazy about it and
      block every change that somehow alters git history. git blame allows to
      specify starting revision for a reason.
      The other argument (human factor) can be easily solved by using tools
      such as clang-tidy. clang-tidy is a clang-based linter for C++. It can
      be used for various things, e.g. fixing coding style(e.g. add missing
      braces to if statements, readability-braces-around-statements check),
      or in our case add missing override keywords.
      Test Plan: Compiles.
      Reviewers: #kwin, davidedmundson
      Reviewed By: #kwin, davidedmundson
      Subscribers: davidedmundson, apol, romangg, kwin
      Tags: #kwin
      Differential Revision: https://phabricator.kde.org/D22371
  23. 09 Jul, 2019 2 commits
  24. 25 Jun, 2019 1 commit
  25. 23 Jun, 2019 1 commit
    • David Edmundson's avatar
      Close screen grabbing effect when screensaver starts · 3604aaf7
      David Edmundson authored
      The screenlock fails on X11 if it can't grab the keyboard.
      We can't nicely solve the generic case. We can solve the common case of
      a kwin effect being active.
      It's not critical, arguably not even desirable to have these effects
      persist after the screen is locked through an external trigger. We can
      just close the effect early.
      Key grabs have to be relased early before the close animation completes
      so that the locker doesn't have a race based on animation times.
      It's not ideal, but no worse than the current state for not much work.
      BUG: 234153
      Test Plan:
      locked screen on a timer
      opened various effects
      Reviewers: #kwin, zzag
      Reviewed By: #kwin, zzag
      Subscribers: ngraham, zzag, kwin
      Tags: #kwin
      Differential Revision: https://phabricator.kde.org/D20890
  26. 18 Jun, 2019 1 commit
  27. 13 Jun, 2019 1 commit
    • Roman Gilg's avatar
      [platforms/x11/standalone] Port to AbstractOutput · 1a11abc8
      Roman Gilg authored
      Represent outputs in the X11 session via AbstractOutput. For that we
      move all Wayland specific parts of AbstractOutput into a new subclass
      AbstractWaylandOutput and let the outputs of our Wayland backends inherit
      from there.
      This should allow us to get rid of the Screens class later on.
      Test Plan: Manually in X session.
      Reviewers: #kwin, zzag, davidedmundson
      Reviewed By: #kwin, zzag, davidedmundson
      Subscribers: ngraham, zzag, kwin
      Tags: #kwin
      Differential Revision: https://phabricator.kde.org/D19208
  28. 06 Jun, 2019 1 commit
  29. 16 May, 2019 3 commits
  30. 09 May, 2019 1 commit
  31. 24 Apr, 2019 1 commit