| Summary: | XWayland rendering artifacts with KWIN_COMPOSE=Q | ||
|---|---|---|---|
| Product: | [Plasma] kwin | Reporter: | Fabian Vogt <fabian> |
| Component: | scene-qpainter | Assignee: | KWin default assignee <kwin-bugs-null> |
| Status: | RESOLVED FIXED | ||
| Severity: | normal | Flags: | mgraesslin:
Wayland+
mgraesslin: X11- mgraesslin: ReviewRequest+ |
| Priority: | NOR | ||
| Version First Reported In: | git master | ||
| Target Milestone: | --- | ||
| Platform: | openSUSE | ||
| OS: | Linux | ||
| URL: | https://phabricator.kde.org/D6952 | ||
| Latest Commit: | https://commits.kde.org/kwin/20e314d151e002b85419a284a4dced9214426018 | Version Fixed/Implemented In: | |
| Sentry Crash Report: | |||
| Attachments: | Screenshot | ||
|
Description
Fabian Vogt
2017-07-26 11:34:22 UTC
Created attachment 106873 [details]
Screenshot
is it also scaled down? I mean if you move the mouse over the menu does it highlight at the correct positions? (In reply to Martin Flöser from comment #2) > is it also scaled down? I mean if you move the mouse over the menu does it > highlight at the correct positions? It's only the drawing that's wrong, if I try xeyes, the offset between cursor and eye increases the further away the cursor is from (0/0), the top left. Just tried myself and yes only drawing is wrong. Problematic code:
const QRect target = QRect(toplevel->clientPos(), toplevel->clientSize());
const QRect src = QRect(toplevel->clientPos() + toplevel->clientContentPos(), pixmap->image().size());
the image size does not match clientSize in the X11 case.
Git commit 54ca2bba25a30b2ff151521bcf5f8135d7bdd69d by Martin Flöser. Committed on 27/07/2017 at 15:09. Pushed by graesslin into branch 'master'. [autotests] Add test case for incorrect rendering of XWayland on SceneQPainter M +1 -1 autotests/integration/CMakeLists.txt M +86 -0 autotests/integration/scene_qpainter_test.cpp https://commits.kde.org/kwin/54ca2bba25a30b2ff151521bcf5f8135d7bdd69d Possible patch at: https://phabricator.kde.org/D6952 Git commit 20e314d151e002b85419a284a4dced9214426018 by Martin Flöser. Committed on 02/08/2017 at 17:30. Pushed by graesslin into branch 'master'. Properly render XWayland windows in SceneQPainter Summary: The buffer for a XWayland window is larger than the actual size. Thus we need to use the clientSize as reference, not the buffer size. Test Plan: Test passes Reviewers: #kwin, #plasma Subscribers: plasma-devel, kwin Tags: #kwin Differential Revision: https://phabricator.kde.org/D6952 M +0 -1 autotests/integration/scene_qpainter_test.cpp M +6 -1 scene_qpainter.cpp https://commits.kde.org/kwin/20e314d151e002b85419a284a4dced9214426018 |