The dummy window hack was needed to ensure hidpi rendering on Wayland.
We introduced QQuickRenderTarget::setDevicePixelRatio() in Qt 6.3, so
the hack can be removed now.
kwin installs metadata files for builtin effects so the kcm can find
them. With the recent KPluginMetaData changes, the Id field has been
removed, so the kcm will use "metadata" (the basename of metadata.json)
as the plugin id.
In order to fix plugin id resolution, let's install metadata with the
file name same as the plugin id.
Binary plugins should not have "Id" field. Instead the library file name
acts as the plugin id.
While on this, static plugin code path can be dropped because
KPluginMetaData handles both static and normal plugins.
It doesn't test anything useful. It's hard to make it test useful things
too due to needing to change the system time. Linking with it also
breaks the encapsulation and it won't work when using MODULE library.
in order to read from the properties directly (as opposed to via
org.freedesktop.DBus.Properties.Get) we need to export slots despite the
class having none (presumably the READ functions count as slots for the
purposes of qdbus?)
this makes direct calls to the interface work correctly
`qdbus org.kde.KWin /org/kde/KWin
org.kde.KWin.TabletModeManager.tabletMode`
Commit 88cf8355 changed the behaviour of Mali (Lima) / PinePhone devices by disabling GLSL
88cf8355 got backported in 5.27.1 and broke PinePhone devices (White rectangle on topright quarter of a black screen)
This patch restores the behaviour of 5.27.0
Buggy clients can commit the wl_surface several times in a row. On the
other hand, XdgToplevelInterface and XdgPopupInterface consider a
surface to be initialized if it has been configured. If the second
wl_surface commit comes before the configure event is sent, kwin will
initialize a toplevel or popup twice, which can trigger asserts.
BUG: 466530
Aurorae decoration plugin creates an unmapped internal window, it's not
rendered and so it's not added to the Workspace.
Internal window setups compositing in its constructor too. It means that
the WindowItem will have a link to the scene, but since the Compositor
has no any idea about the internal window yet, that scene can become a
dangling pointer, and kwin can crash when the window item is destroyed.
BUG: 466313
Unmanaged windows are always in the stack now, so the else branch is not
needed, and in fact, it can produce undesired side effects if unmapped
window is closed.
VirtualDesktopManager::currentChanged() can be emitted with
previousDesktop being null/0. It can happen only on startup. After that,
it's always valid. In order to make the code that uses the
currentChanged signal less trickier, ensure that the current virtual
desktop is initialized when the virtual desktop config is loaded.
On X11, the painted screen is meaningless, so the zoom effect doesn't
use it to store offscreen data. It can create problems when iterating
over offscreen data map.
The painted screen can't be used to determine the necessary offscreen
texture size too. X11 requires some special care.
This change adds explicit wayland checks.
BUG: 466376
When allocating offscreen texture, we should use screen's scale rather
than current render target's scale.
In addition to that, the cached vbo cannot be used for rendering on
other screens with different scale factors, which can happen.