1. 22 Nov, 2020 1 commit
    • David Edmundson's avatar
      Add an explicit quit mechanism controlled by plasma · 71ce1f7a
      David Edmundson authored
      On X Kwin's lifespan used to be managed by XSMP. This accidentally broke
      in 5.20 as we made kwin start before ksmserver for speed purposes.
      This leaves kwin to be killed by the display manager as the X connection
      closes, but this can lead to deadlocks.
      On wayland kwin's lifespan is mapped to the lifespan of the ksmserver
      binary. This is problematic as it makes our entire xwayland robustness
      redundant if we ultimately rely on an application that /has/ to run in
      BUG: 427688
  2. 07 Aug, 2020 2 commits
    • Vlad Zahorodnii's avatar
      Prettify license headers · 4ce853e8
      Vlad Zahorodnii authored
    • 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.
  3. 06 Apr, 2020 1 commit
  4. 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
  5. 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
  6. 14 Sep, 2019 1 commit
  7. 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 ...
  8. 23 Jun, 2016 2 commits
  9. 09 Jan, 2016 1 commit
    • Andreas Hartmetz's avatar
      Remove saving and loading (and client matching by) WM_COMMAND. · 2eac7634
      Andreas Hartmetz authored
      This legacy session management scheme using the WM_COMMAND property
      seems to be called XSM. It is very, very legacy because it was
      superseded by XSMP in 1993(!).
      By inspecting ~/.config/session/kwin_[...] I could see that Firefox
      still sets WM_COMMAND, but nothing else in a regular session with
      some applications.
      As one of the last applications to switch to XSMP session management,
      I guess Firefox keeps doing that because it still needs to work on,
      say, Solaris, anyway, so why not set WM_COMMAND on Linux as well.
      The WM_COMMAND set by Firefox looks like "wmCommand8=firefox\s" in
      the kwin session file. It doesn't actually contain a session
      identifier. But then, Firefox only has one session per user anyway.
      This goes together with commit 5f0ca1305db4a925 in plasma-workspace /
      ksmserver to remove legacy session management support.
      I've talked about my plan to do this on IRC with Martin so hopefully
      it's okay to just do this now.
  10. 17 Jun, 2015 1 commit
  11. 18 Aug, 2014 1 commit
    • Martin Flöser's avatar
      Create dedicated kwin_x11 and kwin_wayland binaries · f9a7b94e
      Martin Flöser authored
      All of kwin except the main function goes into a new (private) library
      called kwin. Two new kdeinit_executables are created:
      * kwin_x11
      * kwin_wayland
      Both only use a dedicated main_x11.cpp and main_wayland.cpp with the
      main function and a KWin::Application subclass and linking the new
      kwin library.
      The main idea behind this is to be able to perform more sane sanity
      checks. E.g. on Wayland we don't need to first test whether we can
      create an X11 connection. Instead we should abort if we cannot connect
      to the Wayland display. Also the multi-head checks are not needed on
      Wayland, etc. etc. As most of that code is in the main function to
      simplify it's better to split.
      This will also make it easier to diverge more easily in future. The
      Wayland variant can introduce more suited command line arguments for
      example. This already started by having the --replace option only
      available in X11 variant. The Wayland backend is still a window manager,
      but doesn't claim the manager selection.
  12. 09 Sep, 2013 1 commit
  13. 06 Aug, 2013 1 commit
  14. 24 Jul, 2013 1 commit
  15. 11 Feb, 2012 3 commits
  16. 31 Oct, 2011 1 commit
  17. 31 Jan, 2011 1 commit
  18. 02 Oct, 2010 1 commit
  19. 03 May, 2010 1 commit
  20. 15 Nov, 2009 1 commit
  21. 15 Aug, 2009 1 commit
    • Thomas Lübking's avatar
      BUG: 203903 · 5c9e611c
      Thomas Lübking authored
      preserve window opacity across sessions
      svn path=/trunk/KDE/kdebase/workspace/; revision=1011730
  22. 23 Mar, 2008 1 commit
  23. 02 Feb, 2008 1 commit
    • Adriaan de Groot's avatar
      Qt3 -> Qt4 style includes. · 214d575a
      Adriaan de Groot authored
      qdrawutil.h doesn't seem to have a purely Qt4-style equivalent, so including the directory there disambiguates it from the Qt3 header.
      svn path=/trunk/KDE/kdebase/workspace/; revision=770116
  24. 27 Nov, 2007 1 commit
  25. 26 Nov, 2007 1 commit
  26. 29 Apr, 2007 2 commits
  27. 05 Apr, 2007 1 commit
  28. 29 Jan, 2007 1 commit
  29. 02 Jan, 2007 1 commit
  30. 20 Apr, 2006 1 commit
  31. 28 Jul, 2005 1 commit
  32. 17 Jan, 2005 1 commit
  33. 10 Jan, 2005 1 commit
  34. 04 Jan, 2005 2 commits