[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