1. 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
  2. 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
  3. 08 Sep, 2018 1 commit
  4. 07 Sep, 2018 1 commit
  5. 06 Sep, 2018 2 commits
  6. 05 Sep, 2018 1 commit
  7. 04 Sep, 2018 1 commit
  8. 03 Sep, 2018 2 commits
  9. 02 Sep, 2018 1 commit
  10. 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
  11. 30 Aug, 2018 8 commits
  12. 29 Aug, 2018 1 commit
  13. 27 Aug, 2018 3 commits
  14. 26 Aug, 2018 3 commits
  15. 25 Aug, 2018 1 commit
  16. 22 Aug, 2018 1 commit