[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [kwin] effects/magnifier: [effects/magnifier] Fix 1 px gap between magnified area and frame
From:       Vlad Zagorodniy <null () kde ! org>
Date:       2018-09-10 10:19:51
Message-ID: E1fzJIN-0005Gy-8u () code ! kde ! org
[Download RAW message or body]

Git commit 617b4d92fa54a43014f722398ad5828175ba3029 by Vlad Zagorodniy.
Committed on 10/09/2018 at 10:08.
Pushed by vladz into branch 'master'.

[effects/magnifier] Fix 1 px gap between magnified area and frame

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

M  +25   -24   effects/magnifier/magnifier.cpp

https://commits.kde.org/kwin/617b4d92fa54a43014f722398ad5828175ba3029

diff --git a/effects/magnifier/magnifier.cpp b/effects/magnifier/magnifier.cpp
index 9768f8d44..22aa7fb5d 100644
--- a/effects/magnifier/magnifier.cpp
+++ b/effects/magnifier/magnifier.cpp
@@ -166,34 +166,35 @@ void MagnifierEffect::paintScreen(int mask, QRegion region, ScreenPaintData& dat
             GLVertexBuffer *vbo = GLVertexBuffer::streamingBuffer();
             vbo->reset();
             vbo->setColor(QColor(0, 0, 0));
+            const QRectF areaF = area;
             // top frame
-            verts << area.right() + FRAME_WIDTH << area.top() - FRAME_WIDTH;
-            verts << area.left() - FRAME_WIDTH << area.top() - FRAME_WIDTH;
-            verts << area.left() - FRAME_WIDTH << area.top() - 1;
-            verts << area.left() - FRAME_WIDTH << area.top() - 1;
-            verts << area.right() + FRAME_WIDTH << area.top() - 1;
-            verts << area.right() + FRAME_WIDTH << area.top() - FRAME_WIDTH;
+            verts << areaF.right() + FRAME_WIDTH << areaF.top() - FRAME_WIDTH;
+            verts << areaF.left() - FRAME_WIDTH << areaF.top() - FRAME_WIDTH;
+            verts << areaF.left() - FRAME_WIDTH << areaF.top();
+            verts << areaF.left() - FRAME_WIDTH << areaF.top();
+            verts << areaF.right() + FRAME_WIDTH << areaF.top();
+            verts << areaF.right() + FRAME_WIDTH << areaF.top() - FRAME_WIDTH;
             // left frame
-            verts << area.left() - 1 << area.top() - FRAME_WIDTH;
-            verts << area.left() - FRAME_WIDTH << area.top() - FRAME_WIDTH;
-            verts << area.left() - FRAME_WIDTH << area.bottom() + FRAME_WIDTH;
-            verts << area.left() - FRAME_WIDTH << area.bottom() + FRAME_WIDTH;
-            verts << area.left() - 1 << area.bottom() + FRAME_WIDTH;
-            verts << area.left() - 1 << area.top() - FRAME_WIDTH;
+            verts << areaF.left() << areaF.top() - FRAME_WIDTH;
+            verts << areaF.left() - FRAME_WIDTH << areaF.top() - FRAME_WIDTH;
+            verts << areaF.left() - FRAME_WIDTH << areaF.bottom() + FRAME_WIDTH;
+            verts << areaF.left() - FRAME_WIDTH << areaF.bottom() + FRAME_WIDTH;
+            verts << areaF.left() << areaF.bottom() + FRAME_WIDTH;
+            verts << areaF.left() << areaF.top() - FRAME_WIDTH;
             // right frame
-            verts << area.right() + FRAME_WIDTH << area.top() - FRAME_WIDTH;
-            verts << area.right() + 1 << area.top() - FRAME_WIDTH;
-            verts << area.right() + 1 << area.bottom() + FRAME_WIDTH;
-            verts << area.right() + 1 << area.bottom() + FRAME_WIDTH;
-            verts << area.right() + FRAME_WIDTH << area.bottom() + FRAME_WIDTH;
-            verts << area.right() + FRAME_WIDTH << area.top() - FRAME_WIDTH;
+            verts << areaF.right() + FRAME_WIDTH << areaF.top() - FRAME_WIDTH;
+            verts << areaF.right() << areaF.top() - FRAME_WIDTH;
+            verts << areaF.right() << areaF.bottom() + FRAME_WIDTH;
+            verts << areaF.right() << areaF.bottom() + FRAME_WIDTH;
+            verts << areaF.right() + FRAME_WIDTH << areaF.bottom() + FRAME_WIDTH;
+            verts << areaF.right() + FRAME_WIDTH << areaF.top() - FRAME_WIDTH;
             // bottom frame
-            verts << area.right() + FRAME_WIDTH << area.bottom() + 1;
-            verts << area.left() - FRAME_WIDTH << area.bottom() + 1;
-            verts << area.left() - FRAME_WIDTH << area.bottom() + FRAME_WIDTH;
-            verts << area.left() - FRAME_WIDTH << area.bottom() + FRAME_WIDTH;
-            verts << area.right() + FRAME_WIDTH << area.bottom() + FRAME_WIDTH;
-            verts << area.right() + FRAME_WIDTH << area.bottom() + 1;
+            verts << areaF.right() + FRAME_WIDTH << areaF.bottom();
+            verts << areaF.left() - FRAME_WIDTH << areaF.bottom();
+            verts << areaF.left() - FRAME_WIDTH << areaF.bottom() + FRAME_WIDTH;
+            verts << areaF.left() - FRAME_WIDTH << areaF.bottom() + FRAME_WIDTH;
+            verts << areaF.right() + FRAME_WIDTH << areaF.bottom() + FRAME_WIDTH;
+            verts << areaF.right() + FRAME_WIDTH << areaF.bottom();
             vbo->setData(verts.size() / 2, 2, verts.constData(), NULL);
 
             ShaderBinder binder(ShaderTrait::UniformColor);
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic