`enabled` must be set in the backend because `visible` will always be
true after getting a valid nodeId, and sometimes we need to reset `enabled`
to false.
CCBUG: 449189
Despite our best effors we currently do not match Gedit windows to their desktop file. It manages to evade all of our heuristics.
There is a reliable way to map it and other GTK apps though, the _GTK_APPLICATION_ID window property, which is more or less the same as our desktopFileName property
Libtaskmanager's buffer for spa_builder is too small on certain
configurations. Because podBuilder->state.offset is never reset, the
buffer space can run out when EGL returns a long list of dma_buf
modifiers, causing PipeWire negotiation to fail.
An example is when EGL returns 20 modifiers. There are 6 formats defined
in pipewiresourcestream.cpp, for each format it will construct 2 frames,
one with 21*8=168 bytes long of modifiers. The modifier lists for all
frames will be 6*168=1008 bytes (only 16 bytes left of 1024 bytes), let
alone other frames.
BUG: 446061
4f53ed33c2 changed two things:
It removed the NoDisplay check
It ported from KServiceTypeTrader to KService::fromDesktopEntry
However the latter caused a behavior change that broke mapping some applications.
Previously an appId of "Sublime_merge" would be mapped to sublime_merge.desktop, but the new code doesn't take mixed casing into account
Revert that part
It is not possible for the user to launch such an app from the UI, so we should not allow to launch a new instance from the task manager context menu.
BUG: 447204
For KCMs we have .desktop files in <share>/applications but with NoDisplay=true.
We still want an appId of kcm_foo to match to the service in <share>/applications/kcm_foo.desktop.
The current code however explicitly excludes those, so stop doing that.
This also allows to simplify the code from KServiceTypeTrader to KService::serviceByDesktopName
This fixes the LauncherUrl for the autostart KCM from file:kcmshell to applications:kcm_autostart.desktop
There were some changes in KWin that only enabled exchanging streams
(thumbnails in our case) in case it's properly supported. We need to
explicitly request it now, otherwise we get memfd which is much slower.
The logic for handling the active window when it is a transient, added in
https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/509, had
a bug (fixed in 67003f740888fa9d1bcee60cd28ce9a862d2452a).
This reworks the implementation and actually makes the original feature work
(a signal also wasn't properly handled).
BUG: 438222
FIXED-IN: 5.22.1
If there's no texture factory function, return the old node immediately.
Also, remove a guard against the code that calculates centered geometry
of the texture node. We cannot hit that case as we check whether the
factory function has returned a valid texture before that.