Polling for drm events works for waiting on pageflip events, but if there's commits
scheduled for future submission, and that fails, no pageflip will ever arrive.
To fix that, this commit ensures at least one commit is actually submitted to the
kernel before polling for pageflip events.
BUG: 492167
(cherry picked from commit 33ad107fa1)
Co-authored-by: Xaver Hugl <xaver.hugl@gmail.com>
As we opportunistically use KMS outside of ICC profiles to apply night light,
we need to explicitly set the shader fallback option to make it be applied in
shaders instead.
BUG: 492890
(cherry picked from commit 5fde036d74)
Co-authored-by: Xaver Hugl <xaver.hugl@gmail.com>
This reverts commit b708a93c1e.
The crashes in BlurEffect::prePaintWindow() continue occurring without
tripping this code, so the culprit must lie elsewhere.
(cherry picked from commit 0f78a2725d)
Co-authored-by: Vlad Zahorodnii <vlad.zahorodnii@kde.org>
If a focussed window is to a new virtual desktop we need to update focus. It
does not make sense for focus to remain on a now-invisible window. This patch
re-uses the same path as when virtual desktop is changed.
BUG: 481574
(cherry picked from commit b96e6cf0b3)
Co-authored-by: David Edmundson <kde@davidedmundson.co.uk>
When we change a Virtual Desktop for a window there are implications on the
stacking order and focus. We need to separate the low level action of
updating just the window and the more general request.
(cherry picked from commit de59a15efe)
Co-authored-by: David Edmundson <kde@davidedmundson.co.uk>
Focus tracking with accessibility APIs is disabled on Wayland because it causes hangs, but we
can at least warp the pointer to the active window instead of (0, 0)
BUG: 493217
(cherry picked from commit c3ed817ef4)
Co-authored-by: Xaver Hugl <xaver.hugl@gmail.com>
When TabBoxHandler::createModel() gets called, it must reset
lastRaisedClient and lastRaisedClientSucc if they are closed windows.
But the createModel() function currently doesn't do it, which can
eventually lead to accessing dangling pointers in
TabBoxHandlerPrivate::updateHighlightWindows().
Besides that, there are a couple more cases where closed windows
need to be filtered out when processing the stack.
(cherry picked from commit ff2b424e06)
Co-authored-by: Vlad Zahorodnii <vlad.zahorodnii@kde.org>
We update the parent's child list, so its sorted child list must be
invalidated.
(cherry picked from commit 32d7d8a1ea)
Co-authored-by: Vlad Zahorodnii <vlad.zahorodnii@kde.org>
Using xyY values to specify the primaries for XYZ doesn't quite work out, so this
commit changes Colorimetry to use (normalized) XYZ values for the primaries and
adds a test that verifies XYZ->XYZ transformations to be identity
This fixes a rare crash where we may dereference a null
TabletV2Interface in findAndAdoptPad. This can happen because the
underlying device disappears, and we call
libinput_device_group_set_user_data (what tabletPadId.data points to)
to reset the user data to null.
Similar to what we do to tablet tool events (see tabletToolEvent), we
should check if this is null before continuing.
Fixes KWIN-3R6
The Item schedules repaints per scene delegate. Currently, there are no
any attached scene delegates when using software cursor, which results in
it freezing as soon as it stops moving.
The issue is addressed by using SceneDelegate instead of RenderLayerDelegate.
The proposed code is not great, but on the other hand, the plan is to
embed the software cursor in the workspace scene if needed.
BUG: 490440
Currently the GHNS dialog calls these "Window Manager Switching
Layouts", which doesn't match the name of the KCM and can apparently
be rather challenging to translate.
"Task Switcher Styles" should be clearer and more consistent.
BUG: 492666
FIXED-IN: 6.2.0