1. 28 Jun, 2019 1 commit
    • Vlad Zahorodnii's avatar
      [scripts] Drop enforcedeco script · 06363b1c
      Vlad Zahorodnii authored
      Summary:
      GTK clients check whether _GTK_FRAME_EXTENTS is in _NET_SUPPORTED, so we
      don't need this script anymore.
      
      Also, because GTK clients don't set shadow extents, this script
      is doing nothing.
      
      Reviewers: #kwin, davidedmundson
      
      Reviewed By: #kwin, davidedmundson
      
      Subscribers: ngraham, jackg, broulik, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D21371
      06363b1c
  2. 27 Jun, 2019 6 commits
    • Roman Gilg's avatar
      [autotests] Fix debug console test · bc309929
      Roman Gilg authored
      Summary:
      Use QTRY_COMPARE macro to not fail if signal already sent. Also shorten
      timeout on expect to fail test for faster test runs.
      
      Test Plan: Debug console test passes again.
      
      Reviewers: #kwin, zzag
      
      Reviewed By: #kwin, zzag
      
      Subscribers: kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D22124
      bc309929
    • Roman Gilg's avatar
      [autotests] In internal window test remove spy waits or guard them · 349560a7
      Roman Gilg authored
      Summary:
      The internal window test is failing on CI because the client add spy waits
      are not triggered. The signal has been emitted already at this point.
      
      Removing them fixes this (the condition is still checked by subsequent
      count verify on the spy) in all but one instance. In this case the wait
      needs to be guarded.
      
      Is there a more general approach to it? Always guarding is ugly. Also when
      was this test regression introduced? In the past we must have had some
      slack until the signal was fired to start the wait call.
      
      Test Plan: Internal window test passes with this patch again.
      
      Reviewers: #kwin, zzag
      
      Reviewed By: #kwin, zzag
      
      Subscribers: davidedmundson, zzag, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D22119
      349560a7
    • Roman Gilg's avatar
      KSelectionOwner usage in ApplicationX11 and Compositor classes · ead1b345
      Roman Gilg authored
      Summary:
      Declare it in the source file for internal usage of ApplicationX11 and
      Compositor classes. Additionally use modern style connect and do other
      code style updates.
      
      Test Plan: Manually in X session and Wayland windowed.
      
      Reviewers: #kwin, zzag
      
      Subscribers: davidedmundson, sbergeron, zzag, kwin
      
      Tags: #kwin
      
      Maniphest Tasks: T11071
      
      Differential Revision: https://phabricator.kde.org/D21655
      ead1b345
    • Roman Gilg's avatar
      [platformsupport] Minor code style and class variables access changes · 486c2f45
      Roman Gilg authored
      Summary:
      Some of these variables have been declared protected but can apparently
      also be private.
      
      Other minor code style improvements.
      
      Test Plan: Compiles, Wayland nested session runs.
      
      Reviewers: #kwin, zzag
      
      Reviewed By: #kwin, zzag
      
      Subscribers: zzag, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D22109
      486c2f45
    • Roman Gilg's avatar
      [autotests] Fix remaining autotests with failing border calculation · 73fa7df1
      Roman Gilg authored
      Summary:
      As in 2c088894 fix remaining autotests failing since no borders has become
      the new default behavior of Breeze.
      
      Autotests should not rely on this default behavior of Breeze though, but be
      run with a faked deco such that changes on Breeze does not directly change
      the autotests behavior. That's a goal for the future.
      
      Test Plan: 100% tests passed, 0 tests failed out of 147
      
      Reviewers: #kwin, zzag
      
      Reviewed By: #kwin, zzag
      
      Subscribers: zzag, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D21746
      73fa7df1
    • David Edmundson's avatar
      Merge branch 'Plasma/5.16' · 26d7996e
      David Edmundson authored
      26d7996e
  3. 25 Jun, 2019 1 commit
  4. 24 Jun, 2019 1 commit
    • David Edmundson's avatar
      [placement] Avoid smart placement strategy with invalid client sizes · 842b2ce5
      David Edmundson authored
      Summary:
      To do so can in some situations lock up as the loop goes through
      different positions incrementing by client->width/height.
      
      If this is zero we can get into a stuck state.
      
      This became a more common issue due to my earlier patch that places windows
      in ShellClient::finishInit to allow the maximize placement strategy to
      set the first configure size.
      
      BUG: 408754
      
      Reviewers: #kwin, broulik
      
      Reviewed By: broulik
      
      Subscribers: kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D21997
      842b2ce5
  5. 23 Jun, 2019 5 commits
  6. 22 Jun, 2019 4 commits
  7. 21 Jun, 2019 2 commits
    • Nate Graham's avatar
      [effects/presentwindows] Allow closing windows on middle-click · 4dd4ca8f
      Nate Graham authored
      Summary:
      Plasma's Task manager exposes an optional  feature whereby the user
      can middle-click on a window to close it, but the Present Windows effect
      does not do the same.
      
      The presence of a close button you can left-click does not replace the desirable
      feature to be able to middle-click on a window to close it, because then the
      whole window becomes a click target, so it can be much much faster than
      having to aim for the little close button. Also it's off by default, so a user
      who goes out of their way to turn it on is signaling that they want to accept the
      risk of accidentally closing a window by accident.
      
      Finally, the feature is not allowed for left-click, so people can never accidentally
      wreck Present Windows for themselves by assigning it to left-click by accident
      and then mistakenly closing their windows.
      
      This reverts commit 55585514.
      
      FEATURE: 321190
      FIXED-IN: 5.17.0
      
      Test Plan:
      Set "Close window" in the Present windows effect, trigger effect, and middle-click on window
      
      {F6815303}
      
      Reviewers: #kwin, davidedmundson, broulik, zzag, #plasma, hein, mart
      
      Reviewed By: #kwin, #plasma, mart
      
      Subscribers: mart, abetts, apol, zzag, luebking, kossebau, graesslin, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D21083
      4dd4ca8f
    • Script Kiddy's avatar
      SVN_SILENT made messages (.desktop file) - always resolve ours · db12cb67
      Script Kiddy authored
      In case of conflict in i18n, keep the version of the branch "ours"
      To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
      db12cb67
  8. 20 Jun, 2019 2 commits
  9. 19 Jun, 2019 3 commits
    • Kai Uwe Broulik's avatar
      [effects/login] Reduce animation time · 8a2f2b5f
      Kai Uwe Broulik authored
      On modern machines session startup takes a few seconds where the 2s might artificially slow down the process by like 50%.
      This makes the animation quicker to make the system feel ready quicker.
      
      Differential Revision: https://phabricator.kde.org/D21904
      8a2f2b5f
    • Erik Kurzinger's avatar
      [platforms/X11] Disable VSync for QtQuick Windows · 0124b1ef
      Erik Kurzinger authored
      Summary:
      QtQuick windows created by KWin currently use the default swap interval
      of 1, meaning buffer swaps will block until vblank. However, this
      results in a problematic interaction on hybrid graphics systems running
      the proprietary NVIDIA driver.  VSync on such setups relies on a system
      called "PRIME synchronization", where the xf86-video-modesetting driver
      controlling the display will signal the NVIDIA driver when vblank has
      occurred. The issue is that it will only do so if there has been damage
      to the screen.
      
      So, when KWin creates a QtQuick window, compositing will stop waiting on
      the window to render, therefore no damage to the screen will occur. But
      this means that no vblank notifications will be delivered to the NVIDIA
      driver, so the glXSwapBuffers call by the QtQuick window will block
      perpetually. The end result is a freeze of the desktop.
      
      To get around this, we can simply disable vsync for QtQuick windows by
      setting the swap interval for the default QSurfaceFormat to 0. Since
      they are redirected, this shouldn't cause any tearing.
      
      BUG: 406180
      FIXED-IN: 5.16.2
      
      Test Plan:
      Using the proprietary NVIDIA driver on a hybrid graphics system, with
      PRIME synchronization enabled (see
      https://devtalk.nvidia.com/default/topic/957814/linux/prime-and-prime-synchronization/),
      perform any action causing a QtQuick window to be created by KWin, for
      example, triggering the application switcher dialogue with alt + tab.
      
      Ensure the desktop does not temporarily freeze.
      
      Note, this required a Qt build that includes commit
      https://code.qt.io/cgit/qt/qtbase.git/commit/?id=0c1831178540462da31fd7a4b6d2e446bc84498b
      resolving a bug that prevented the changing the swap interval.
      
      Reviewers: #kwin, davidedmundson, zzag
      
      Reviewed By: #kwin, davidedmundson, zzag
      
      Subscribers: zzag, romangg, alexeymin, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D21808
      0124b1ef
    • Erik Kurzinger's avatar
      [platforms/X11] Disable VSync for QtQuick Windows · 56cd5f55
      Erik Kurzinger authored
      Summary:
      QtQuick windows created by KWin currently use the default swap interval
      of 1, meaning buffer swaps will block until vblank. However, this
      results in a problematic interaction on hybrid graphics systems running
      the proprietary NVIDIA driver.  VSync on such setups relies on a system
      called "PRIME synchronization", where the xf86-video-modesetting driver
      controlling the display will signal the NVIDIA driver when vblank has
      occurred. The issue is that it will only do so if there has been damage
      to the screen.
      
      So, when KWin creates a QtQuick window, compositing will stop waiting on
      the window to render, therefore no damage to the screen will occur. But
      this means that no vblank notifications will be delivered to the NVIDIA
      driver, so the glXSwapBuffers call by the QtQuick window will block
      perpetually. The end result is a freeze of the desktop.
      
      To get around this, we can simply disable vsync for QtQuick windows by
      setting the swap interval for the default QSurfaceFormat to 0. Since
      they are redirected, this shouldn't cause any tearing.
      
      BUG: 406180
      FIXED-IN: 5.16.2
      
      Test Plan:
      Using the proprietary NVIDIA driver on a hybrid graphics system, with
      PRIME synchronization enabled (see
      https://devtalk.nvidia.com/default/topic/957814/linux/prime-and-prime-synchronization/),
      perform any action causing a QtQuick window to be created by KWin, for
      example, triggering the application switcher dialogue with alt + tab.
      
      Ensure the desktop does not temporarily freeze.
      
      Note, this required a Qt build that includes commit
      https://code.qt.io/cgit/qt/qtbase.git/commit/?id=0c1831178540462da31fd7a4b6d2e446bc84498b
      resolving a bug that prevented the changing the swap interval.
      
      Reviewers: #kwin, davidedmundson, zzag
      
      Reviewed By: #kwin, davidedmundson, zzag
      
      Subscribers: zzag, romangg, alexeymin, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D21808
      56cd5f55
  10. 18 Jun, 2019 1 commit
  11. 17 Jun, 2019 2 commits
    • Vlad Zahorodnii's avatar
      Overhaul AbstractOutput · 8e88139f
      Vlad Zahorodnii authored
      Summary:
      There are several issues with code of AbstractOutput class:
      
      (a) Some methods are documented, and some are not. In general, we tend
          to document all public methods in KWin core. It looks like a very
          minor issue, but there are methods that have very ambiguous return
          value. One such method is geometry(). It's not obvious whether the
          returned geometry is in device independent pixels or not;
      
      (b) There's a mix of methods defined in the cpp file and in the header.
          This is not very good because reading such code becomes a bit harder
          if you don't use any fancy IDE;
      
      (c) Missing Q_DISABLE_COPY, etc.
      
      This change addresses these issues, so the code is a bit more readable
      and easier to work with.
      
      Reviewers: #kwin, davidedmundson
      
      Reviewed By: #kwin, davidedmundson
      
      Subscribers: broulik, cfeck, davidedmundson, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D21874
      8e88139f
    • Vlad Zahorodnii's avatar
      Backport Night Color feature to X11 · 0d381846
      Vlad Zahorodnii authored
      Summary:
      The color correction manager doesn't make any specific assumptions about
      underlying platform, e.g. whether it's x11, etc. The platform just
      has to be capable of setting gamma ramps. Given that, there are no any
      significant technical blockers for making this feature work on x.
      
      Reviewers: #kwin, davidedmundson, romangg
      
      Reviewed By: #kwin, davidedmundson, romangg
      
      Subscribers: romangg, neobrain, GB_2, filipf, davidedmundson, ngraham, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D21345
      0d381846
  12. 14 Jun, 2019 2 commits
    • Roman Gilg's avatar
      Remove BasicScreens class · a39c7405
      Roman Gilg authored
      Summary:
      After porting all platforms to using AbstractOutput the BasicScreens
      class is not needed anymore.
      
      Test Plan: Compiles
      
      Reviewers: #kwin, zzag
      
      Reviewed By: #kwin, zzag
      
      Subscribers: kwin
      
      Tags: #kwin
      
      Maniphest Tasks: T11098
      
      Differential Revision: https://phabricator.kde.org/D21800
      a39c7405
    • Roman Gilg's avatar
      Fix xdg-output creation · 6ac1585e
      Roman Gilg authored
      In 1a11abc8 some function calls in the createXdgOutput function were
      accidentally removed resulting in possibility of broken setup on startup.
      
      Add these calls back again.
      6ac1585e
  13. 13 Jun, 2019 3 commits
  14. 12 Jun, 2019 2 commits
  15. 10 Jun, 2019 1 commit
  16. 09 Jun, 2019 2 commits
  17. 07 Jun, 2019 1 commit
    • Roman Gilg's avatar
      [autotests] Fix decoration input test · 2c088894
      Roman Gilg authored
      Since d51b8dc0 the test fails on CI, apparently because we test with
      Breeze default settings, which is no borders now and we can move a bit into
      the window geometry and still be on the border if borders exist, otherwise
      not.
      
      For now fix it by checking if there are borders or not and then test
      accordingly. But long-term we should test both cases and besides not rely on
      external decorations for our test, instead use a fake specific for our
      integration testing.
      2c088894
  18. 06 Jun, 2019 1 commit
    • Roman Gilg's avatar
      Delayed focus updates for Toplevels without surface · 846961bf
      Roman Gilg authored
      Summary:
      XWayland clients have a surface associated with them asynchronously. In this
      case we don't directly want to set focus on this Toplevel, but wait until the
      surface is set.
      
      This patch aims in conjunction with an unrelated fix to SDL at improving Steam
      Big Picture Mode in our Wayland session.
      
      Test Plan: Steam BPM regains focus on game close.
      
      Reviewers: #kwin, zzag
      
      Reviewed By: #kwin, zzag
      
      Subscribers: anthonyfieroni, davidedmundson, zzag, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D19262
      846961bf