SUMMARY STEPS TO REPRODUCE 1. Install KWin 6.10 and Polonium 6 (515f6990c848d935c56de5e12cec74ca4aab1baf) 2. Open Plasma (Wayland) session 3. Reproduced on 1080p and 1440p (primary) monitors. 4. Open any Window on 1440p monitor. OBSERVED RESULT Window is teleported to the non-primary 1080p monitor. As `window.output` property in KWin Scripting API contains 1080p monitor output, instead of 1440p monitor output. EXPECTED RESULT Window is behaving as on KWin 6.05 (opens on the same monitor). SOFTWARE/OS VERSIONS Linux/KDE Plasma: Arch Linux KDE Plasma 6.1 (available in About System) KDE Plasma Version: 6.10 KDE Frameworks Version: 6.30 Qt Version: 6.7.1 ADDITIONAL INFORMATION Manually bisecting this issue points to commit commit 52b92904dead8dedd8134d532f507e6f5bc78958 (HEAD -> bad-commit) Author: Marco Martin <notmart@gmail.com> Date: Mon Apr 15 12:18:09 2024 +0000 Quick tiling double buffereing The quicktileMode member now is just for the requested tile mode, base the "real" mode only on m_tile. The requested tile mode is used for double buffering, to look and behave just like requestedMAximizeMode() which is updated immediately, but needs to acknowledge the configure request and render for quickTileMode() (and the right tile() instanced to be associated) to be updated accordingly autotests/integration/move_resize_window_test.cpp | 27 ++++++++++--- autotests/integration/quick_tiling_test.cpp | 125 +++++++++++++++++++++++++++++++++++++++-------------------- src/placementtracker.cpp | 4 +- src/tiles/quicktile.cpp | 4 ++ src/tiles/tile.cpp | 6 ++- src/tiles/tilemanager.cpp | 6 +++ src/tiles/tilemanager.h | 3 ++ src/window.cpp | 91 ++++++++++++++++++++++++++++++------------- src/window.h | 15 +++---- src/x11window.cpp | 10 ++++- src/x11window.h | 1 + src/xdgshellwindow.cpp | 35 ++++++++++++----- 12 files changed, 228 insertions(+), 99 deletions(-)
Bisecting https://invent.kde.org/plasma/kwin/-/merge_requests/5532 shows that bug is present from first commit 12226a891f8d2c77116cbaf9b97bde63b2af610e is the first bad commit commit 12226a891f8d2c77116cbaf9b97bde63b2af610e (HEAD) Author: Marco Martin <notmart@gmail.com> Date: Thu Mar 14 13:28:26 2024 +0100 Remove m_quickTileMode and base only on tiles This removes the tracking member and uses the tile information, removing a duplication of data and source of truth src/window.cpp | 48 ++++++++++++++++++++++++++++++++++-------------- src/window.h | 12 ++---------- 2 files changed, 36 insertions(+), 24 deletions(-)
A possibly relevant merge request was started @ https://invent.kde.org/plasma/kwin/-/merge_requests/5960
Git commit 47ee47dcc82bc38daf22d7fcf03fe0d35e3afe16 by Vlad Zahorodnii, on behalf of Alik Aslanyan. Committed on 25/06/2024 at 05:59. Pushed by vladz into branch 'master'. tiling: Add fallback path for the first Polonium tile After !5532 a new code path was triggered during Workspace::rearrange call. When first Polonium window opens on any screen, there is no active tile yet. This forces geometry calculation in Window::checkWorkspacePosition -> Window::ensureSpecialStateGeometry To return empty QRect, which depending on the screen arrangement will move window to the other screen. This confuses Polonium plugin, as it receives wrong outputChanged signal in scripting API. Signed-off-by: Alik Aslanyan <inline0@pm.me> M +0 -2 src/window.cpp https://invent.kde.org/plasma/kwin/-/commit/47ee47dcc82bc38daf22d7fcf03fe0d35e3afe16
Git commit 7578f70b404acbceb53b057e8c483926badf7e21 by Vlad Zahorodnii, on behalf of Alik Aslanyan. Committed on 25/06/2024 at 06:34. Pushed by vladz into branch 'Plasma/6.1'. tiling: Add fallback path for the first Polonium tile After !5532 a new code path was triggered during Workspace::rearrange call. When first Polonium window opens on any screen, there is no active tile yet. This forces geometry calculation in Window::checkWorkspacePosition -> Window::ensureSpecialStateGeometry To return empty QRect, which depending on the screen arrangement will move window to the other screen. This confuses Polonium plugin, as it receives wrong outputChanged signal in scripting API. Signed-off-by: Alik Aslanyan <inline0@pm.me> (cherry picked from commit 47ee47dcc82bc38daf22d7fcf03fe0d35e3afe16) M +0 -2 src/window.cpp https://invent.kde.org/plasma/kwin/-/commit/7578f70b404acbceb53b057e8c483926badf7e21