1. 14 Sep, 2018 6 commits
  2. 13 Sep, 2018 6 commits
    • Jonathan Riddell's avatar
      Update version number for 5.14.80 · 9ebb7978
      Jonathan Riddell authored
      GIT_SILENT
      9ebb7978
    • Jonathan Riddell's avatar
      Update version number for 5.13.90 · 84cd9cfc
      Jonathan Riddell authored
      GIT_SILENT
      84cd9cfc
    • Vlad Zahorodnii's avatar
      [shadow] Rebuild quads after creation of shadow · 213239a0
      Vlad Zahorodnii authored
      Summary:
      If a shadow is installed for already rendered window, the shadow won't
      be initially rendered because we don't rebuild window quad cache.
      
      BUG: 398572
      FIXED-IN: 5.14.0
      
      Test Plan: Can't reproduce 398572 anymore.
      
      Reviewers: #kwin, davidedmundson
      
      Reviewed By: #kwin, davidedmundson
      
      Subscribers: kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D15475
      213239a0
    • David Edmundson's avatar
      Remove duplicated auto backend resolution · 0a2e51db
      David Edmundson authored
      Summary:
      kwin_wayland now automatically chooses an appropriate backend, such as
      DRM, nested wayland or nested X. If nested it will automatically go into
      windowed mode regardless of whether --windowed is set and works fine.
      
      Backend choosing logic existed duplicated in older code for kwin_wayland
      --windowed, with the subtle unexpected difference that it preferred
      running as an X client over running as a wayland cient if both are
      present. This simplifies codes and syncs automatic resolution behaviour.
      
      kwin_wayland --windowed with --x11-display  or --wayland-display will
      remain the same.
      
      Test Plan:
      Ran kwin_wayland with and without --windowed inside another wayland.
      Got the same backend chosen
      Tested that kwin_wayland (without --windowed) on an X machine worked just fine.
      
      Reviewers: #kwin, mart
      
      Reviewed By: #kwin, mart
      
      Subscribers: mart, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D13658
      0a2e51db
    • David Edmundson's avatar
      Avoid crash with on scripted window teardown with threaded quick render loop · d485dfe7
      David Edmundson authored
      Summary:
      Qt render loops behave quite differently to each other.
      
      KWin scripting as a workaround for another situation cleans
      (17553e5a) handles tracking of script
      windows by deleting the underlying window handle on hide.
      
      This currently happens before the window gets the hideEvent.
      
      Arguably this is a quirk with Qt, but in the current state:
      
      - QSGThreadedRenderLoop deletes the platform window and cleans up
      - We then get the hide() event. This no-ops because there's no window.
         (else branch of     case WM_TryRelease in qsgthreadedrenderloop.cpp)
      - We carry on rendering animations despite having no platform
      - undefined behaviour
      
      Normally this isn't a problem as typically destruction of the platform window
      happens only when a window is being deleted, we're messing with Qt
      internals here.
      
      If we make sure the QHideEvent is processed by the render loop first,
      things seem fine.
      
      BUG: 397767
      
      Test Plan:
      Ran QSG_RENDER_LOOP=threaded
      Read output with scenegraph logging rules on
      
      Reviewers: #kwin, broulik
      
      Reviewed By: broulik
      
      Subscribers: kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D15025
      d485dfe7
    • Script Kiddy's avatar
      SVN_SILENT made messages (.desktop file) - always resolve ours · e4ff5062
      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"
      e4ff5062
  3. 12 Sep, 2018 2 commits
    • Roman Gilg's avatar
      Remove breaking pointer constraints functionality · 6072b0cd
      Roman Gilg authored
      Summary:
      With 26948390, 0bd5eff8 and f0ba436c it is now possible to
      unconstrain a pointer by killing the client or deactivating the window, for
      example by switching the window via the TabBox.
      
      A user should always be able to do it therefore without needing to explicitly
      break the pointer constrain as in the past with the Esc key.
      
      Therefore remove the functionality and also remove the OSD announcing it,
      which was often shown at the wrong time.
      
      Test Plan: Manually and auto test adapted.
      
      Reviewers: #kwin, #vdg, hein
      
      Reviewed By: hein
      
      Subscribers: ngraham, hein, kwin
      
      Tags: #kwin
      
      Maniphest Tasks: T8923
      
      Differential Revision: https://phabricator.kde.org/D15234
      6072b0cd
    • Vlad Zahorodnii's avatar
      [effects/trackmouse] Allow to use both modifiers and shortcut · 74994a7f
      Vlad Zahorodnii authored
      Summary:
      The Track Mouse effect can be toggled either by pressing modifier keys
      and moving mouse or by pressing a shortcut. It's not possible to use
      the latter and then the former without changing config.
      
      But there is one caveat, in order to use shortcut, you have to uncheck
      all modifier keys. This seems to be not very intuitive.
      
      In addition to that, the KCM allows to change shortcut even if there is
      some checked modifier.
      
      As the title says, this change makes possible to use both modifier keys
      and shortcut to activate this effect without changing config.
      
      KCM:
      {F6237308, layout=center, size=full}
      
      BUG: 398124
      FIXED-IN: 5.14.0
      
      Reviewers: #kwin, #plasma, #vdg, davidedmundson
      
      Reviewed By: #kwin, #plasma, #vdg, davidedmundson
      
      Subscribers: broulik, abetts, ngraham, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D15272
      74994a7f
  4. 11 Sep, 2018 3 commits
    • Vlad Zahorodnii's avatar
      [effects/showpaint] Modernize code · cc1f30b4
      Vlad Zahorodnii authored
      Summary:
      Summary of changes:
      * Use QVector to store colors
      * Add Q_OBJECT macro
      * Port away from QRegion::rects
      * Fix coding style
      * Use default member initialization
      * Use nullptr
      * Reserve rects in paintXrender
      
      The behavior of this effect haven't been changed, it still acts as before.
      
      Test Plan: Compiles, and the Show Paint effect is still a psychedelic thing.
      
      Reviewers: #kwin, davidedmundson
      
      Reviewed By: #kwin, davidedmundson
      
      Subscribers: kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D15424
      cc1f30b4
    • Vlad Zahorodnii's avatar
      [effects] Fix type of X-KWin-Video-Url · 113ebe9b
      Vlad Zahorodnii authored
      Summary:
      The desktop file parser supports only QString, QStringList, Int, Double,
      and Bool. QUrl is not a supported type for some reason.
      
      Thus, let's use QString for X-KWin-Video-Url.
      
      Reviewers: #kwin, broulik
      
      Reviewed By: broulik
      
      Subscribers: Zren, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D15373
      113ebe9b
    • Roman Gilg's avatar
      Activate clients on drag enter · 1fada994
      Roman Gilg authored
      Summary:
      We currently only raise a client when a drag enters it and not activate it.
      This is confusing since afterwards the raised window has not keyboard focus
      although visually being in front of the window the drag originated from.
      
      Therefore activate entered windows instead of only raising them.
      
      Test Plan: Manually and autotests still pass.
      
      Reviewers: #kwin, hein
      
      Reviewed By: hein
      
      Subscribers: anthonyfieroni, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D15225
      1fada994
  5. 10 Sep, 2018 2 commits
    • Vlad Zahorodnii's avatar
      [effects/dialogparent] Fix strict mode issues · 03a2a05f
      Vlad Zahorodnii authored
      Summary:
      Modification of undeclared variables is illegal in the strict mode, e.g.
      
      ```lang=js
      mainWindows = window.mainWindows();
      ```
      
      is illegal.
      
      Test Plan: The Dialog Parent effect works with both QScriptEngine and QJSEngine.
      
      Reviewers: #kwin, davidedmundson
      
      Reviewed By: #kwin, davidedmundson
      
      Subscribers: kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D15413
      03a2a05f
    • Vlad Zahorodnii's avatar
      [effects/magnifier] Fix 1 px gap between magnified area and frame · 617b4d92
      Vlad Zahorodnii authored
      Summary:
      The x-coordinate of the area's left edge and y-coordinate of the area's
      top edge are adjusted by 1px leading to a gap between the frame and
      magnified area. Because area has type of QRect, we have to adjust only
      coordinates of the right and bottom edge by 1 px.
      
      Because QRectF::right() == QRectF::x() + QRectF::width(), we can use
      QRectF, which leads to more cleaner code because we don't need to do 1px
      adjustments.
      
      Test Plan:
      Before:
      {F6235388, layout=center, size=full}
      
      After:
      {F6235439, layout=center, size=full}
      
      Reviewers: #kwin, davidedmundson
      
      Reviewed By: #kwin, davidedmundson
      
      Subscribers: davidedmundson, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D15275
      617b4d92
  6. 08 Sep, 2018 1 commit
  7. 07 Sep, 2018 1 commit
  8. 06 Sep, 2018 2 commits
  9. 05 Sep, 2018 1 commit
  10. 04 Sep, 2018 1 commit
  11. 03 Sep, 2018 2 commits
  12. 02 Sep, 2018 1 commit
  13. 31 Aug, 2018 9 commits
    • Vlad Zahorodnii's avatar
      Clean up includes · 624a4531
      Vlad Zahorodnii authored
      Summary:
      * effects.h includes client.h and forward declares Client, both at the
        same time. Thus, delete the include;
      
      * the blur effect includes effects.h. That, most likely, is a leftover
        after 3f5bf65a.
      
      Test Plan: Compiles.
      
      Reviewers: #kwin, davidedmundson
      
      Reviewed By: #kwin, davidedmundson
      
      Subscribers: kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D15191
      624a4531
    • Andrius Štikonas's avatar
      Fix capitalization typo. · f96bea7c
      Andrius Štikonas authored
      f96bea7c
    • Vlad Zahorodnii's avatar
      [scenes/opengl] Fix overlaps in shadow texture atlas · dadcd511
      Vlad Zahorodnii authored
      Summary:
      If the corner shadow tiles(top-left, top-right, and so on) tiles are missing,
      then the left/top/right/bottom shadow tiles will overlap.
      
      This diff addresses that problem by changing how the shadow texture
      atlas is rendered:
      * corner tiles will be drawn in the corners of the atlas(buildQuads
        method expects them to be at the corners);
      * top, right, bottom, and left tile will be aligned to the top-left
        corner of the inner shadow rect.
      
      For majority of desktop themes, the shadow texture atlas looks the same.
      For example, here's for Aether:
      
      Before:
      {F6190484, layout=center, size=full}
      
      After:
      {F6190488, layout=center, size=full}
      
      Depends on D14783
      
      Reviewers: #kwin, davidedmundson
      
      Reviewed By: #kwin, davidedmundson
      
      Subscribers: davidedmundson, abetts, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D14784
      dadcd511
    • Vlad Zahorodnii's avatar
      [scenes/opengl] Correctly draw shadows when corner tiles are missing · 5e55664d
      Vlad Zahorodnii authored
      Summary:
      Current implementation of buildQuads assumes that corner shadow tiles
      are always present:
      
          const QRectF leftRect(
              topLeftRect.bottomLeft(),
              bottomLeftRect.topRight());
      
      but that assumption is wrong. For example, if the default panel is on
      the bottom screen edge, then the calendar popup won't have the
      bottom-left shadow tile(at least on Wayland). Which means that the left
      shadow tile won't be visible because
      topLeftRect.left() == bottomLeftRect.right().
      
      Corner rectangles only have to influence height of the left/right tile
      and width of the top/bottom tile. Width of the left/right tile and
      height of the top/bottom tile should not be controlled by corner tiles.
      
      Overall, this is how shadow quads are computed:
      
      * Compute the outer rectangle;
      * Compute target rectangle for each corner tile. If some corner tile is
        missing, move the target rectangle to the corresponding corner of the
        inner shadow rect and set its width and height to 0. We need to do
        that to prevent top/right/bottom/left tiles from spanning over
        corners:
      
      {F6190219, layout=center, size=full}
      
      We would rather prefer something like this if the top-left tile is
      missing:
      {F6190233, layout=center, size=full}
      
      * Fix overlaps between corner tiles;
      * Compute target rectangles for top, right, bottom, and left tiles;
      * Fix overlaps between left/right and top/bottom shadow tiles.
      
      Test Plan:
      * Ran tests;
      * Resized Konsole to its minimimum size(on X11 and Wayland);
      * Opened the calendar popup(on X11 and Wayland):
      
      Before:
      {F6190344, layout=center, size=full}
      
      After:
      {F6190346, layout=center, size=full}
      
      Reviewers: #kwin, davidedmundson
      
      Reviewed By: #kwin, davidedmundson
      
      Subscribers: abetts, davidedmundson, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D14783
      5e55664d
    • Roman Gilg's avatar
      [platforms/virtual] Set raw physical size of outputs · 95cb47ca
      Roman Gilg authored
      Summary: At least one test requires the physical size to be set.
      
      Test Plan:
      Lock screen screen edges test is passing again. Without the change the corner
      offset in the ScreenEdges class is not calculated correctly via the
      physicalDpiX() and physicalDpiY() values of an auxilliary QWidget.
      
      Reviewers: #kwin, davidedmundson
      
      Reviewed By: #kwin, davidedmundson
      
      Subscribers: davidedmundson, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D15183
      95cb47ca
    • Roman Gilg's avatar
      [colorcorrection] Set gamma through Output class · 9cf2730f
      Roman Gilg authored
      Summary:
      With the new Output class we can set the gamma directly here. This is also
      a stepping stone to adjust individual output gamma adjustment later on.
      
      This means any future backend, which aims to support the color correction
      frontend needs to use the Output class.
      
      Test Plan: Night Color test still passes.
      
      Reviewers: #kwin
      
      Subscribers: kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D11803
      9cf2730f
    • Roman Gilg's avatar
      [platforms/virtual] Let VirtualOutput inherit Output · b22c362b
      Roman Gilg authored
      Summary:
      Let VirtualOutput be a child class of the new generic class Output.
      This allows code sharing and a very similar behavior of the Virtual backend
      in comparision to the Drm backend.
      
      Test Plan:
      Autotests succesful with two exceptions: The decoration input test fails on
      testDoubleTap, row topLeft. This is to be expected because now the
      ScreenEdgeInputFilter captures the event at position (0,0) before the
      DecorationEventFilter can capture it. The autotest was adapted to take this
      special case into account.
      
      Also the lockscreen test fails, because the virtual output is currently missing
      the physical size yet.
      
      Reviewers: #kwin
      
      Subscribers: kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D11789
      b22c362b
    • Roman Gilg's avatar
      Introduce OutputScreens class · 34823782
      Roman Gilg authored
      Summary:
      Lift high-level properties into new Screens child class for platform plugins
      using the Output class.
      
      Directly make DrmScreens a child class of OutputScreens.
      
      Test Plan: Manually and auto tests with 94%.
      
      Reviewers: #kwin
      
      Differential Revision: https://phabricator.kde.org/D11782
      34823782
    • Roman Gilg's avatar
      Introduce generic Output class · fe63e21f
      Roman Gilg authored
      Summary:
      In order to separate high-level properties of individual outputs from
      hardware-specific ones and access these, introduce a new generic class Output.
      
      Also make the DrmOutput class directly a child class of this generic class.
      
      The long-term goal is to get rid of the Screens global object on Wayland and
      instead directly work with Output objects on compositing level.
      
      This should enable us long-term to do direct scanout to hardware planes, what
      I predict needs this generic output representation at one point.
      
      Test Plan: Manually.
      
      Reviewers: #kwin
      
      Subscribers: kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D11781
      fe63e21f
  14. 30 Aug, 2018 3 commits