1. 08 Jan, 2019 7 commits
    • Vlad Zahorodnii's avatar
      [libkwineffects] Overhaul AnimationEffect's documentation · be3ab387
      Vlad Zahorodnii authored
      Summary: This change reformats the documentation so it's more easier to read it.
      
      Test Plan:
      Generated Doxygen documentation, started Python's Simple HTTP server, navigated
      to AnimationEffect's documention, haven't noticed any serious issues.
      
      Reviewers: #kwin, davidedmundson
      
      Reviewed By: #kwin, davidedmundson
      
      Subscribers: graesslin, davidedmundson, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D17832
      be3ab387
    • David Edmundson's avatar
      [plugins/qpa] Commit wl_surface when flipping FBOs · bbb67f26
      David Edmundson authored
      Summary:
      Even though the buffer is passed through a side channel some properties
      we might use are double-buffered on the surface commit.
      
      Test Plan: Used by unit test InternalWindowTest::testScale in linked commit
      
      Reviewers: #kwin, graesslin
      
      Reviewed By: #kwin, graesslin
      
      Subscribers: kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D18085
      bbb67f26
    • David Edmundson's avatar
      [platforms/virtual] Add API to set scale in virtual backend · 03f79868
      David Edmundson authored
      Summary: For unit test purposes
      
      Test Plan: Used by unit test InternalWindowTest::testScale in linked commit
      
      Reviewers: #kwin, graesslin
      
      Reviewed By: #kwin, graesslin
      
      Subscribers: kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D18086
      03f79868
    • Valerio Pilo's avatar
      [kcmkwin/kwindecoration] Fix visuals of KCM decorations' buttons tab · e6c06801
      Valerio Pilo authored
      Summary:
      BUG: 346222
      BUG: 399992
      BUG: 356076
      FIXED-IN: 5.15
      
      The QML changes make the tab look and feel less awful:
      * make the fake window borders stand out less
      * add margins to drop area to make it easier to drop buttons on the title bar (fixing 346222)
      * change cursor to a non-pointing one [1]
      
      [1] Drag&drop: When dropping, we receive the position of the button being dropped,
      not of the cursor. The two can be far (when starting drag by moving the cursor fast):
      which makes the whole experience very confusing, as the user means to drop at cursor location.
      
      Test Plan: Tested drag/drop: same (messy) behavior as before, but can now drop more loosely around titlebar items
      
      Reviewers: #vdg, #kwin, ngraham
      
      Reviewed By: #vdg, ngraham
      
      Subscribers: davidedmundson, ngraham, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D17982
      e6c06801
    • Vlad Zahorodnii's avatar
      [kcmkwin/desktop] Add animation option back · aaaca19b
      Vlad Zahorodnii authored
      Summary:
      The "new" animation option no longer uses hard coded effects, which
      means one could install a third party virtual desktop switching animation,
      for example from store.kde.org, and it will be displayed in the KCM.
      
      Test Plan: {F6503565}
      
      Reviewers: #kwin, #vdg, ngraham, davidedmundson
      
      Reviewed By: #kwin, #vdg, ngraham, davidedmundson
      
      Subscribers: davidedmundson, hein, ngraham, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D17766
      aaaca19b
    • Vlad Zahorodnii's avatar
      [kcmkwin] Move effects model into a shared library · c3fd6413
      Vlad Zahorodnii authored
      Summary:
      The main motivation for moving it into a shared library is to share the
      model between Desktop Effects and Virtual Desktops KCM.
      
      The extracted model is quite the same as the one in Desktop Effects KCM,
      except some minor changes, e.g. rename loadEffect and syncConfig to more
      convenient names, add comments, some whitespace changes, fix coding
      style in some parts, etc.
      
      Test Plan: effectModelTest passes, Desktop Effects KCM works.
      
      Reviewers: #kwin, davidedmundson
      
      Reviewed By: #kwin, davidedmundson
      
      Subscribers: hein, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D17765
      c3fd6413
    • 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
  2. 07 Jan, 2019 2 commits
  3. 06 Jan, 2019 2 commits
    • Nate Graham's avatar
      [kcmkwin/compositing] Port Effects KCM to QQC2 · d2882762
      Nate Graham authored
      Summary:
      This patch ports the Effects KCM to QQC2, which yields the following benefits:
      1. General performance enhancements of only using QQC2 rather than a mix of 1 and 2
      2. Some code simplification is possible
      3. Improves the appearance of the checkable menu items in the dropdown menu, fixing https://bugs.kde.org/show_bug.cgi?id=402701
      4. Improves the appearance when using a fractional scale factor, fixing https://bugs.kde.org/show_bug.cgi?id=396725
      5. Fixes the incorrect size when opened from `kcmshell5`
      
      Along the way, two visual changes are introduced as a by-product of porting:
      1. The scrollbar is inline, so it overlaps some of the buttons in the content. This is somewhat undesirable, but adopting a Kirigami scrollview would fix this.
      2. The button that displays a dropdown menu no longer has a downward-pointing arrow to indicate as such. This is not my preference, but there's a benefit to being consistent, and eventually we could can change this in one place to impeove the appearance of buttons that display dropdown menus everywhere in one fell swoop.
      
      BUG: 396725
      BUG: 402701
      BUG: 396076
      FIXED-IN: 5.15.0
      
      Test Plan:
      All functionality still works
      
      In System Settings, showing improved checkable menu item appearance:
      {F6523385}
      
      In `kcmshell` at 1x scale:
      {F6523386}
      
      In `kcmshell` at 1.5x scale:
      {F6523387}
      
      Reviewers: #kwin, #plasma, davidedmundson
      
      Reviewed By: #kwin, #plasma, davidedmundson
      
      Subscribers: davidedmundson, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D17928
      d2882762
    • Script Kiddy's avatar
      SVN_SILENT made messages (.desktop file) - always resolve ours · 90306f5c
      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"
      90306f5c
  4. 05 Jan, 2019 5 commits
    • 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
    • Martin Flöser's avatar
      Implement isPopupWindow for internal windows · 6b3e55d6
      Martin Flöser authored
      Summary:
      Just accessing Qt::Popup WindowFlag.
      
      BUG: 402852
      
      Test Plan: Not tested for the described problematic case
      
      Reviewers: #kwin
      
      Subscribers: kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D17981
      6b3e55d6
    • Martin Flöser's avatar
      [platforms/virtual] Add support for EGL_MESA_platform_surfaceless · bedd8582
      Martin Flöser authored
      Summary:
      Thus we don't require vgem any more which fails with latest mesa.
      Kepping the vgem variant as fallback for older systems. See T10245
      
      Test Plan:
      SceneOpenGL Test passes without init vgem, not tested with
      latest mesa
      
      Reviewers: #kwin
      
      Subscribers: kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D17980
      bedd8582
    • Martin Flöser's avatar
      Merge branch 'Plasma/5.14' · a3bebb2f
      Martin Flöser authored
      a3bebb2f
    • Martin Flöser's avatar
      [platforms/x11/standalone] Pass kxkbconfig to Xkb prior to reconfigure · 0f489c35
      Martin Flöser authored
      Summary:
      This ensures that KWin gets the same keyboard layout config as is
      configured in the session and not a default config.
      
      BUG: 402764
      FIXED-IN: 5.14.5
      
      Test Plan:
      Xephyr to verify the config is applied, otherwise completely
      untested. I don't have an X session.
      
      Reviewers: #kwin
      
      Subscribers: kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D17967
      0f489c35
  5. 04 Jan, 2019 1 commit
  6. 03 Jan, 2019 4 commits
    • Krešimir Čohar's avatar
      [kcmkwin/compositing] Use ellipsis in Desktop Effects kcm · b822b5c0
      Krešimir Čohar authored
      Summary: This patch introduces the ellipsis used in Krunner, Kicker, Kickoff and Clipboard to Desktop Effects (Kwin).
      
      Test Plan:
      Before: {F6522181}
      After: {F6522182}
      
      Reviewers: ngraham, #vdg, #kwin, davidedmundson
      
      Reviewed By: ngraham, #vdg, #kwin, davidedmundson
      
      Subscribers: kwin
      
      Tags: #kwin
      
      Maniphest Tasks: T10258
      
      Differential Revision: https://phabricator.kde.org/D17937
      b822b5c0
    • David Edmundson's avatar
      [effects/slideback] Port away from deprecated EffectWindow::desktop · fe47a8d9
      David Edmundson authored
      Summary:
      Not only does the function windowsShareDesktop become a lot more complex
      with the new desktop cardinality comparing if they share any desktop
      isn't actually what we want.
      
      If I have 2 windows on desktop 1 and the lower stacked window is also on
      desktop 2, when I switch desktops the focus will change, but we don't
      want to animate anything here as on this dekstop it has nothing to slide
      in front of.
      
      Instead this patch simply checks both windows are on the current
      desktop.
      
      Test Plan:
      Loaded a few windows. Some on one, some on more.
      Before if a window was on desktop 1&2 it wouldn't animate on 2.
      
      Windows now seem to animate when they should and not when they shouldn't.
      
      Reviewers: #kwin, zzag
      
      Reviewed By: #kwin, zzag
      
      Subscribers: kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D17943
      fe47a8d9
    • Vlad Zahorodnii's avatar
      [effects/slidingpopups] Port away from deprecated EffectWindow::desktop · 1084f162
      Vlad Zahorodnii authored
      Summary:
      If a window is not on the current virtual desktop, then it won't be
      painted/slided. Thus, we can replace EffectWindow::desktop by
      EffectsHandler::currentDesktop.
      
      Test Plan: The effect still works correctly on both X11 and Wayland.
      
      Reviewers: #kwin, davidedmundson
      
      Reviewed By: #kwin, davidedmundson
      
      Subscribers: kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D17944
      1084f162
    • Valerio Pilo's avatar
      [kcmkwin/kwindecoration] Set current decoration index on start · ef1692ee
      Valerio Pilo authored
      Summary:
      Fixes the preselected decoration style on module load.
      
      Also:
      * Prevent the module state to be set to modified on resize.
      * Fix QML errors in logs.
      
      Reviewers: davidedmundson
      
      Reviewed By: davidedmundson
      
      Subscribers: davidedmundson, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D17775
      ef1692ee
  7. 01 Jan, 2019 2 commits
    • David Edmundson's avatar
      [wayland] XdgDecoration Support · ac45977e
      David Edmundson authored
      Summary:
      Does something similar to our existing ServerDecoration, but based
      around XDG Shell patterns and with a few subtle differneces.
      
      We'll probably still need both in kwin for the forseeable future as GTK3
      won't ever change from using the KDE Server Decoration.
      
      Test Plan:
      Relevant unit test. It's a bit simpler as spec states
      toolkits must follow what the compositor configures if they
      bind the interface.
      
      Modified plasma-integration to remove ServerIntegration
      (as Qt5.12 has native support) all my windows look and act the same.
      
      Reviewers: #kwin, zzag
      
      Reviewed By: #kwin, zzag
      
      Subscribers: kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D17756
      ac45977e
    • Vlad Zahorodnii's avatar
      [autotests] Add tests for keep-above and keep-below states · 48d13379
      Vlad Zahorodnii authored
      Reviewers: #kwin, davidedmundson
      
      Reviewed By: #kwin, davidedmundson
      
      Subscribers: kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D16252
      48d13379
  8. 31 Dec, 2018 5 commits
    • Vlad Zahorodnii's avatar
      [wayland] Don't use hardcoded move-resize cursor · 1ca2aec7
      Vlad Zahorodnii authored
      Summary:
      Currently, when resizing a window the cursor doesn't match the resize
      direction. The reason for that is the move-resize cursor is hardcoded.
      
      To fix that, CursorImage::updateMoveResize has to use AbstractClient::cursor.
      Also, because the move-resize cursor is updated after calling startMoveResize,
      we have to connect to AbstractClient::moveResizeCursorChanged.
      
      BUG: 370339
      FIXED-IN: 5.15
      
      Reviewers: #kwin, davidedmundson, broulik, romangg, graesslin
      
      Reviewed By: #kwin, graesslin
      
      Subscribers: davidedmundson, romangg, graesslin, kwin
      
      Tags: #kwin
      
      Maniphest Tasks: T5714
      
      Differential Revision: https://phabricator.kde.org/D3202
      1ca2aec7
    • Martin Flöser's avatar
      Honor struts when placing Wayland transients · 792d8404
      Martin Flöser authored
      Summary:
      So far transients were placed anywhere on the screen. This behavior was
      inspired from X11 where context menus were able to overlap any other
      window and use the complete screen area. On X11 context menus and
      similar windows are override redirect and thus above all windows managed
      by KWin.
      
      On Wayland, though, context menus and similar and windows just like any
      other window and thus follow stacking constraints like the parent
      window. A context menu is stacked just above it's parent and is
      (normally) below any panels. This resulted in problems that context menu
      are stacked behind the panel with unreachable options.
      
      This change changes the placement for transients to use the
      PlacementArea instead of a screen geometry. Thus the transient does not
      render behind the panel. Only in case of a fullscreen the struts are
      ignored.
      
      BUG: 389222
      FIXED-IN: 5.15
      
      Test Plan: New test case
      
      Reviewers: #kwin
      
      Subscribers: kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D17826
      792d8404
    • Martin Flöser's avatar
      Port window specific rules dialog to DBus · 0b28abeb
      Martin Flöser authored
      Summary:
      The dialog invoked through user actions menu takes the internal uuid as
      command line argument which allows to query the required information
      from KWin instead of using X11.
      
      This allows to enable the system for Wayland windows.
      
      In order to replace the usage of ClientMachine in the rules dialog the
      dbus interface is extended by a value whether the window is on the
      localhost. This is exposed through a virtual method on toplevel which is
      overridden in ShellClient and there always returning true.
      
      Test Plan: Run a nested Wayland and opened the dialog on a wayland window
      
      Reviewers: #kwin
      
      Subscribers: kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D17750
      0b28abeb
    • Martin Flöser's avatar
      Try to make TestShellClient::testUnresponsiveWindow more robust · feb1d443
      Martin Flöser authored
      Summary:
      When looking at the test results on build.kde.org we see this is the
      test which fails most often and it's always at the same line of code.
      
      So I just had a look with the thought: "what's special about this code,
      why could it fail?"
      
      Looking at it we start an external process which is supposed to connect
      to KWin. We wait for the process to start and then wait for the shell
      client added. This assumes that at the time we handle the wait for
      started the connection of the window has not happened yet.
      
      Waiting for the process in a blocking way, might make the process fail
      to connect to the Wayland session, so this is changed to not block and
      instead use a signal.
      
      Reviewers: #kwin
      
      Subscribers: kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D17748
      feb1d443
    • Martin Flöser's avatar
      Add touch support to x11 windowed platform · d49642ca
      Martin Flöser authored
      Summary:
      This change inits XInput extension, listens for touch events and
      forwards them to our platform API. Thus touch events are forwarded on a
      nested wayland session on X11.
      
      Please note that I only tested this change on Xwayland.
      
      Test Plan: Run nested kwin_wayland with two outputs and looked into debug console
      
      Reviewers: #kwin
      
      Subscribers: kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D17369
      d49642ca
  9. 28 Dec, 2018 1 commit
  10. 24 Dec, 2018 1 commit
  11. 23 Dec, 2018 1 commit
  12. 22 Dec, 2018 4 commits
  13. 21 Dec, 2018 3 commits
  14. 19 Dec, 2018 2 commits
    • David Edmundson's avatar
      [kcmkwin/kwinrules] Don't include kdeglobals in rules config · f3060723
      David Edmundson authored
      Summary:
      There's nothing relevant in kdeglobals and loading it can lead to noise
      when deleting groups that override a system default.
      
      We still cascade which will allow kiosk keys to work as well as relevant
      system defaults.
      
      Import/Export is unchanged as that already uses SimpleConfig which
      includes this flag.
      
      I don't know if it will fix the relevant issue in the bug or just
      reduce noise.
      
      CCBUG: 402139
      
      Test Plan: Compiled.
      
      Reviewers: #kwin, zzag
      
      Reviewed By: #kwin, zzag
      
      Subscribers: zzag, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D17645
      f3060723
    • Script Kiddy's avatar
      SVN_SILENT made messages (.desktop file) - always resolve ours · b07ba3ba
      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"
      b07ba3ba