1. 26 Jul, 2017 1 commit
  2. 25 Jul, 2017 5 commits
  3. 24 Jul, 2017 1 commit
  4. 23 Jul, 2017 4 commits
  5. 22 Jul, 2017 1 commit
  6. 21 Jul, 2017 1 commit
  7. 20 Jul, 2017 3 commits
  8. 18 Jul, 2017 3 commits
  9. 17 Jul, 2017 6 commits
    • Martin Flöser's avatar
      [qpa] Use the new OpenGLContextAttributeBuilder to create Qt's OpenGL context · 73fa7b21
      Martin Flöser authored
      Introduces a few more attributes needed for creating the OpenGL context
      used by the QPA.
      Test Plan:
      Extended test and run KWin/Wayland and verified that OpenGL context
      gets created correctly.
      Reviewers: #kwin, #plasma
      Subscribers: plasma-devel, kwin
      Tags: #kwin
      Differential Revision: https://phabricator.kde.org/D6734
    • Martin Flöser's avatar
      Require C++14 · ea5d611d
      Martin Flöser authored
      KWin already used C++14 constructs in a conditional way. This doesn't
      make much sense today, it's better to just require C++14.
      For KWin only gcc and clang are currently compilers of relevance. Gcc
      supports C++14 since version 5 and defaults to C++14 since 6.1 [1].
      Clang supports C++14 since version 3.4 [2].
      An overview of compiler support in various distributions:
      * Debian stable (stretch): gcc 6.3, clang 3.8
      * Debian oldstable (jessie): 4.9, clang 3.5
      * Ubuntu 17.04: gcc 6.1, clang 3.8
      * Ubuntu 16.04: gcc 5.3, clang 3.8
      * openSUSE Tumbleweed: gcc 7.1, clang 4.0
      * openSUSE Leap 42.3: gcc ?, clang ? [3]
      * FreeBSD: clang >= 34 in ports
      * Slackware 14.2: gcc 5.3
      This overview shows that every distro out there has at least one
      supported compiler which can still compile KWin with this change.
      [1] https://gcc.gnu.org/projects/cxx-status.html#cxx14
      [2] https://clang.llvm.org/cxx_status
      [3] Sorry I fail to understand openSUSE's package repository.
          It seems that there is gcc 7 available, but gcc package is 4.8
      Test Plan: Compiles on my neon system
      Reviewers: #plasma
      Subscribers: plasma-devel, kwin, #kwin
      Tags: #kwin
      Differential Revision: https://phabricator.kde.org/D6634
    • Martin Flöser's avatar
      Merge branch 'Plasma/5.10' · 8e2805ce
      Martin Flöser authored
    • Martin Flöser's avatar
      [aurorae] Add support for shaded windows · bf0e0f07
      Martin Flöser authored
      Aurorae did not render correctly. This change addresses the problem for
      both maximized and restored windows.
      BUG: 373319
      FIXED-IN: 5.10.4
      Test Plan: shaded windows with Plastik and SVG based theme
      Reviewers: #kwin, #plasma
      Subscribers: plasma-devel, kwin
      Tags: #kwin
      Differential Revision: https://phabricator.kde.org/D6719
    • Martin Flöser's avatar
      Properly swap the quick tile side when pressing the shortcut again · 139b4dc8
      Martin Flöser authored
      The quick tile shortcuts have a feature of moving the window to the next
      screen if one presses the same shortcut again.
      E.g. if a window is quick tiled to the left on the right most screen,
      quick tile again to left should move it to the left screen and quick tile
      right. Thus it swaps the borders.
      This wasn't handled correctly, especially not for modes like top and
      bottom. If a window is quick tiled to the top an impossible mode was
      generated: Left | Right. Doesn't make sense.
      This change fixes the mode swapping and extends our quick tile testing
      to cover the situation.
      BUG: 382313
      FIXED-IN: 5.10.4
      Test Plan: Extended test case
      Reviewers: #plasma, #kwin
      Subscribers: plasma-devel, kwin
      Tags: #kwin
      Differential Revision: https://phabricator.kde.org/D6708
    • Martin Flöser's avatar
      [aurorae] Mark the render QQuickWindow as frameless · 5cb91762
      Martin Flöser authored
      On Wayland aurorae was creating a lot of stress for the system and
      basically turning the system unusable in a short time. This was due to
      a recursion starting to create OpenGL contexts. The window created a
      decoration (aurorae) which created a QQuickWindow. For that KWin creates
      an internal window which in turn triggers the creation of a window
      decoration and so on and on.
      By simply setting the render QQuickWindow as frameless we can prevent
      this recursion.
      Test Plan: Tested on Wayland and X11. On Wayland the recursion is gone.
      Reviewers: #kwin, #plasma
      Subscribers: plasma-devel, kwin
      Tags: #kwin
      Differential Revision: https://phabricator.kde.org/D6726
  10. 16 Jul, 2017 1 commit
    • Martin Flöser's avatar
      [platforms/x11] Quit the OpenGL Freeze protection thread on shutdown · 06a558e3
      Martin Flöser authored
      Weird NVIDIA behavior fixup part 2. Now that we do no longer freeze when
      NVIDIA decides to create an OpenGL error on startup
      (aefb5f4d), we experience a new issue.
      KWin is terminating (no idea why, [1]) and at the same time the OpenGL freeze
      protection thread is still running. So far we did not terminate the
      thread on shutdown and thus we hit an abort in Qt.
      This change ensures that we properly terminate the thread on shutdown.
      [1] My current theory is that games terminate KWin, common pattern of
      bug reports is "steam".
      BUG: 382283
      FIXED-IN: 5.10.4
      Test Plan:
      Tortured KWin by making sure I go through the code path,
      saw the abort without the patch, no more abort with the patch
      Reviewers: #kwin, #plasma
      Subscribers: plasma-devel, kwin
      Tags: #kwin
      Differential Revision: https://phabricator.kde.org/D6735
  11. 15 Jul, 2017 1 commit
  12. 14 Jul, 2017 2 commits
  13. 11 Jul, 2017 2 commits
    • Martin Flöser's avatar
      Implement support for restricted move area on Wayland · 672cae9a
      Martin Flöser authored
      This change implements a missing TODO to generate the restricted move
      area for windows with struts (aka panel) on Wayland.
      Reviewers: #kwin, #plasma
      Subscribers: plasma-devel
      Tags: #plasma
      Differential Revision: https://phabricator.kde.org/D6611
    • Martin Flöser's avatar
      Restrict move resize area only on the screen the strut window is on · 14c8440f
      Martin Flöser authored
      By allowing panels between screens in 5.8 to have a strut we created a
      "regression" in KWin. KWin always was wrong, just we didn't notice as
      neither Plasma nor previously Kicker set a strut on panels between shared
      screen edges.
      The strut is created from the edge of the overall screen setup. This
      means a panel on the left edge of a screen on the right has the strut
      starting from the left screen. KWin uses the strut to restrict the move
      resize area: a window decoration is not allowed to go below a strut. Thus
      it becomes impossible to move the window from the right to the left
      This change tries to solve this problem by only restricting the move area
      on the screen the window with the strut is on. E.g. if the window is on
      the right screen, the left screen is not affected. Thus it's possible
      again to move a window from one screen to the other as the added test
      case shows.
      Unfortunately there are still corner cases where this won't work
      correctly. If the window is on both screens this won't work. It is also a
      rather heavy change for KWin and thus it's targeted for master and not
      for the 5.10 or the 5.8 branch. If we notice that the patch works well
      and doesn't create further issues, it should be considered for
      BUG: 371199
      CCBUG: 370510
      FIXED-IN: 5.11
      Test Plan: Added test case
      Reviewers: #kwin, #plasma
      Subscribers: plasma-devel, kwin
      Tags: #kwin
      Differential Revision: https://phabricator.kde.org/D6562
  14. 09 Jul, 2017 1 commit
    • Martin Flöser's avatar
      Add ConsoleKit2 support for launching Wayland sessions · 6ebc3d65
      Martin Flöser authored
      Summary: ConsoleKit2 as of version 1.1.1 implements the Session Controller dbus calls required by Kwin to run under Wayland. This patch first looks for the login1 service before attempting the ConsoleKit service.
      Test Plan:
      On a system running ConsoleKit2, logging into a text console and running:
      export $(dbus-launch); export QT_QPA_PLATFORM=wayland; startplasmacompositor
      Most of this patch is just shuffling code around to support both logind and CK2.
      Reviewers: #kwin, graesslin
      Reviewed By: #kwin, graesslin
      Subscribers: graesslin, kwin
      Tags: #kwin
      Differential Revision: https://phabricator.kde.org/D6291
  15. 08 Jul, 2017 1 commit
  16. 07 Jul, 2017 2 commits
  17. 06 Jul, 2017 5 commits
    • Martin Flöser's avatar
      Merge branch 'Plasma/5.10' · 0d941c6e
      Martin Flöser authored
    • Martin Flöser's avatar
      Raise minimum required Mesa version to 10.0 · 88e56f63
      Martin Flöser authored
      The currently minimum required Mesa version was 8.0 and KWin had special
      caseing for Mesa 9.1. This is no longer realistic, no distribution
      provides such an old Mesa version. So let's increase the version a
      little bit.
      Overview of Mesa versions supported by distributions:
       * Debian stable (stretch): 13.0
       * Debian oldstable (jessie): 10.3
       * Debian oldstable backports: 13.0
       * Debian oldoldstable (wheezy): 8.0
       * Ubuntu 16.04 LTS: 11.2
       * Ubuntu 16.04 LTS updates: 12.0
       * Ubuntu 17.04: 17.0
       * openSUSE Tumbleweed: 17.1
       * openSUSE Leap 42.2: 11.2
       * openSUSE Leap 42.3: 17.0
       * Arch: 17.1
       * Fedora 24: 12.0
       * Fedora 25: 17.0
       * Fedora 26: 17.1
      Test Plan: Compiles
      Reviewers: #kwin, #plasma
      Subscribers: plasma-devel, kwin
      Tags: #kwin
      Differential Revision: https://phabricator.kde.org/D6462
    • Martin Flöser's avatar
      [qpa] Prevent crash due to Surface getting null · 962a2e39
      Martin Flöser authored
      This is a regression due to changes in Breeze to support Qt 5.8+ behavior
      change. KWin's own QPA operates like < Qt 5.7 and breeze was programmed
      against that. Due to that it can happen now that Breeze hits code paths
      in which KWin does not have a surface.
      To trigger one only needed to open the user actions menu twice.
      This change adds a test case which simulates the problem and fixes all
      crashes happening in the code path.
      Most likely shadows are now broken for KWin's own windows, this change is
      only to prevent the crash and thus is for 5.10 branch, while shadow
      fixing will go to master branch.
      BUG: 382063
      FIXED-IN: 5.10.4
      Test Plan: New test case
      Reviewers: #kwin, #plasma
      Subscribers: plasma-devel, kwin
      Tags: #kwin
      Differential Revision: https://phabricator.kde.org/D6533
    • Martin Flöser's avatar
      Merge branch 'Plasma/5.10' · 46085d3b
      Martin Flöser authored
    • Martin Flöser's avatar
      [platforms/x11] Fix incorrect screen edge approaching with switch desktop on window move · 4e9456a8
      Martin Flöser authored
      There is a regression in WindowBasedEdge::soStopApproaching. Due to
      only operate when the edge activates for pointer it is possible that
      the cursor polling stays active. Explaining the situation:
      1. Activate switch desktop when moving window
      2. Start moving a window
      3. Move mouse into the approach geometry
      -> doStartApproaching activates as we are moving a window
      4. stop moving window
      -> doStopApproaching early exits as the position does not activate for
         pointer any more - we are not moving a window
      -> cursor polling is still connected and whenever mouse enters edge
         approaching is started
      The analysis shows that the check whether activates for pointer is wrong
      in the case of stop approaching. If the edge started to approach, we also
      need to stop approaching.
      This change addresses the problem by turning the check into whether the
      connection for cursor position update is set.
      This is the third bug fix to the X11 screen edge handling after
      introducing touch screen edges. This needs more manual testing by
      everybody in the Plasma team who is still using X11.
      BUG: 381849
      FIXED-IN: 5.10.4
      Reviewers: #kwin, #plasma
      Subscribers: plasma-devel, kwin
      Tags: #kwin
      Differential Revision: https://phabricator.kde.org/D6467