Wants says we should bring ksmserver up, but by default that could be in
any order, we need to define it. kcminit also potentially exports
environment variables.
This was written with the correct order in-mind but the wrong keyword
used. We don't need "Wants" as plasma-core.target already defines that
we will be loading them along with plasmashell.
It is important that ksmserver is up and has completed exporting the
SESSION_MANAGER env, otherwise plasmashell will not propogate it so
applications it launches introducing an X session regression
Previously the call to ksplash was being emitted by plasma-session. This
isn't used in the systemd startup so it was introduced in a somewhat
messy script.
This script has an issue:
If ksplash is disabled the bus name won't be registered. Typically this
isn't an issue. However to avoid a race condition ksplash registers
itself as being DBus activatable, so that the dbus server holds
dispatching the message.
This combo means ksmserver our unit is considered as not running until
our script times out. This then defers other things in the chain that
depend on ksmserver.
Moving the call into the relevant piece of code into ksmserver unifies
things into a single path and gives us more control.
BUG: 432364
Currently if hypothetically closeSession was called multiple times
before the async operation completed the first caller would never get a
reply and then be left hanging potentially forever.
This is unlikely to happen in real life given only the plasma shutdown
binary should be calling this and that's a unique application.
Calls to a DBus activated service can fail if the sender quits whilst
the service is spawning
(https://gitlab.freedesktop.org/dbus/dbus/-/issues/72) and using
dbus-daemon.
This is a lazy interim fix that just makes these calls block as proper
fixes will require more work.
BUG: 432460
New error:
/usr/share/plasma/plasmoids/org.kde.plasma.keyboardlayout/contents/ui/
main.qml:17:5: Unable to assign [undefined] to QString
This is because just string is returned and not an object.
The expression should always return struct with proper fields instead.
it was technically possible for geometries to not be integer, but
a string to int parse was done, so teoretically string.toInt() can
fail and reset position/size of the plasmoid.
It may be the cause of some of the positions lost bugs.
This was particularly evident and triggerable in plasma mobile.
on palsma mobile side was also fixed by making suire the grid size is
always int, however technically the bug is here too as well
Because we have changed the name of the desktop file, this also
changes the name of the kglobalaccel component. I have adjusted the program so
it checks which of the two old components is active and then sets the shortcuts
on the new one. I have opted for this because we cannot guarantee the order of
update scripts.
Ensures that a file or destination named `<h1>foo.txt` doesn't break the layout.
It still goes through the normal HTML text filter, so remote file access isn't
possible, merely screwing up the layout.
This ensures that an error message the app might have sent in response to the
cancel request is still shown.
Also, while at it deduplicate code by calling into `terminate` from the
service watcher.
If folders are marked as executable the runner will skip them
but we only want to skip files, because they are handled by
the shellrunner.
BUG: 432653
FIXED-IN: 5.21
Solves a case where an application installs multiple desktop files
for handling different mime types. Typically those have NoDisplay=true
as recommended by the spec. But we want to associate the application
with the "main" desktop file.
An example of this happening within KDE is KDevelop.
Apparently this was a KDE 4 feature that was lost in the Plasma 5 port.
I've re-implemented it using a notification, so it can be turned off or
customized if the user so desires. Kamoso does something similar.
BUG: 384469
FIXED-IN: 5.21
Prior to this change, the use commands would fail if the wallpaper
download payload had a space in the filename (caused, paradoxically, by
the method used to ensure the payload is escaped for shell use).
This patch introduces a new knsrc for wallpapers that's supposed to be
used for mobile devices. While many of the existing wallpapers on the
store do work for mobile use, a great many of them only focus on desktop
style form factors, and since there's mobile-focused categories on the
store now, we probably want to make use of that.
This reverts commit 9f2abd0a54.
Scores are adjusted by launch count, so pulling more matches into a
context increases the chance of one of them outscoring the other even
though they have nothing to do with it.
Notable example:
Flatpaks have extremely long Exec lines meaning they match just about
any subsequence match once we've reached 3 query characters.
So then a konversation flatpak matches the query 'tel' same as telegram.
Now if you are more into IRC than into telegram you may have a higher
launch count applying to konversation and all of a sudden the
objectively better match for the query is no longer at the top.
In lieu of a way to prevent this from happening with krunner 5.78 we'll
need to undo the subsequencing for now.
For future reference: Kai and I believe Exec and Comment shouldn't be
subsequence matched at all because Exec just makes no sense to begin
with and Comment can be so very long so it will suffer the same problem
as outlined. The more text there is the higher the chance of it matching
the subsequence simply having having all the characters appear anywhere.
Further future reference: subseq needs a test case added to the unit
test if it makes a return!
BUG: 431609
BUG: 432339
CCBUG: 262837
FIXED-IN: 5.21.0
The system tray will use a fading animation between applets instead of the usual sliding animation; as the sliding animation does not work well when adapted to work vertically.
Before this patch, the system tray always animated sliding to the left when switching between items. Now system tray items will slide according to their order on the panel. Clicking an item to the left of the active icon will cause the sliding animation to slide that direction as well, and same for the an item to the right of the active item.