Fix "Toggle raise and lower" functionality for a case when there are
windows in higher layers present on the same desktop; a window that is
being acted upon could never be top-most in such a case, which prevented
it from being lowered by "Toggle raise and lower" action.
Checking if a window is top-most now uses unconstrained_stacking_order
list, which reflects user-requested stacking window order, but doesn't
know anything about layers, and that in turn allows any window that user
has raised most recently to be lowered by "Toggle raise and lower" (even
if this window is not actually top-most, because of windows in higher
layers).
BUG: 440540
QStringLiteral will need to allocate a new string and convert the
literal to utf-16. QLatin1StringView is the suggested alternative as it
doesn't need any of that.
Signed-off-by: Victoria Fischer <victoria.fischer@mbition.io>
It's not clear why the code checked for suspend *before* suspend, but handling clock changes
after suspend can be done much more simply, by just resetting after the system woke up
Adjusting the reference luminance depending on the display and its settings is error prone and
causes issue like needing to re-adjust when the display settings change.
This change may require some users to adjust application settings, in order to match the changed
reference luminance
Workspace::adjustWindowPosition() properly handles hidden windows and it
also excludes more window types, but Workspace::adjustWindowSize() only
shares a small fraction of those checks due to getting out of sync because
of code duplication.
BUG: 461987
The SeatInterface::timestampChanged() signal is used to determine any
sort of user activity, but this also implies that kwin must always
update the timestamp even though no wayland surface is focused. It
results in code that's counter-intuitive and, in general, it stands in
the way of making any sort of cleanup.
It's X11 specific code and, in general, special casing QtWidgets in such
generic code contributes confusion about the code. On X11, if keyboard
can't be grabbed, doStartInteractiveMoveResize() function will fail. On
Wayland, we support moving popups together with their parent windows.
This code is a bit over-engineered because SeatInterface used to freak
out when it received a touch motion or a touch release event with an
unknown touch id.
This adds support for a proper app menu icon for aurorae svg
decorations. The appmenu.svg(z) file will be used for the icon if it
exists. If not, it will fallback to the window's icon, the same as
before.
BUG: 404322
It's pretty obvious, and now individual effects that are activated by
keyboard shortcut are indicate inline. The label no longer adds much
value, so remove it.
Many KWin effects require a two-step process to activate: first enable
them in the KCM, and activate them using a keyboard shortcut — either
the default one or a custom one. But this may not be obvious to users,
who can think that simply enabling the effects in the KCM is enough.
To improve this, mention the need for manual activation using a keyboard
shortcut in the captions of effects that have this requirement.
BUG: 492936
FIXED-IN: 6.3.0
While the xdg shell specification says otherwise, in practice we have apps that
are translucent and expect that to work in fullscreen. More importantly, if we
don't enforce opaqueness with GPU compositing, we shouldn't do it in scanout either
BUG: 493222
A closed window cannot react to new geometry, also requesting new
geometry can involve accessing resources that are gone/deleted now.
Scripts trying to move or resize a closed window is a bug though.
BUG: 492213
There might be more XdndStatus client messages after a drop occurs. In
which case avoid sending XdndDrop client message again as it can result
in a feedback loop with clients such as GIMP.
BUG: 482298
Currently, a tiled window will be untiled when you start interactive
resize. But there are clients that start interactive resize as soon as
they receive a button press around their edges, e.g. Firefox, which
results in unexpected untiling. Another argument is that it makes
interactive resizing and interactive move consistent, they both would
untile the window after explicit user input.
BUG: 470687
There have been many reports that enabling HDR on NVidia can lead to KWin's atomic commits
being rejected on login, which means KWin can't display anything. To prevent users from
falling into that trap, this commit disables the colorspace capability unless the
KWIN_DRM_ALLOW_NVIDIA_COLORSPACE=1 environment variable is set.
This commit should be reverted once the driver problem causing the issue has been fixed.
CCBUG: 488941
The only reason for handling them is that the effect grabs the keyboard, which disables
global shortcuts on Xorg.
In the Wayland session though, global shortcuts still work while the effects are active,
and usually that works fine, as the global shortcuts filter filters out the key press events
before they reach the effect. Modifier-only shortcuts though trigger on release, so they
don't get filtered out and the shortcut effectively gets triggered twice, once by the effect
on press, and once by kglobalacceld on release.
BUG: 493589
Some hooks need to run on X11 startup.
On X11 this is handled by the login manager, for XWayland this is the
responsibility of the desktop.
Long term, we want Plasma to make XWayland actually on demand and therefore we
should use the initfd for these startup scripts before the application connects.
BUG: 493054