The power management inhibition UI is currently somewhat confusing to
users because it's not clear that the checkbox is a local override for
the permanent settings set elsewhere in System Settings.
A good sign that the UI is sub-optimal is that we refer to it as "power
management inhibition" internally and in our developer conversations,
but the UI expresses the opposite: *allowing* power management, not
inhibiting it. This conflicts in the user's mind with the UI in System
Settings that is also expressed in terms of allowing it. It is further
confused by the fact that the message about apps suppressing power
management is phrased in terms of being an temporary override, and that
we also show an unrelated message about the battery charge limit (if set)
in the same place where we're notifying the user about power management
inhibition.
Let's clarify this UI by doing the following:
- Re-word the checkbox's label to emphasize that it's a local override
for the settings that were set elsewhere
- Move the charge level message into the battery item itself, since
that's what it affects
- Slightly re-word the message for when apps are inhibiting power
management to emphasize that power management can be inhibited
automatically by apps in additionto manually by the user
BUG: 435827
FIXED-IN: 5.22
These actions bypass the user setting for whether or not to show the
logout screen and always log out/reboot/etc. immediately. Because they
have default keyboard shortcuts, they can be triggered by accident and
cause unexpected logouts/reboots/etc.
BUG: 435954
FIXED-IN: 5.22
SNI can have custom icon path in IconThemePath attribute.
StatusNotifierItemSource uses custom KIconLoader to add this theme dir.
KIconLoader forgets this path on any system change
(for example when icon theme is change in system settings).
Reapply custom theme path on KIconLoader::iconChanged.
BUG: 433557
FIXED-IN: 5.22.0
This uses the newly introduced API in plasma-framework to use a custom calendar
header in the applet header and moves the events and timezone information to the
left column and the calendar to the right column.
This is generally what we do for other KCMs, and the UX is virtually
unchanged from the current multi-KCM dialog, with the exception of being
able to navigate elsewhere if you want.
BUG: 423761
FIXED-IN: 5.22
There's no point, since it always says "-" and just covers up the icon.
Let's only show the overlay if there are actually any batteries.
BUG: 435890
FIXED-IN: 5.22
Taken from commit 4ce9a4a915511acbd41450da486d8e5d5bae10da in plasma-desktop
The commit history of the KCM can be followed in 9db1c0593e84cdb705fc61cddbdc4e5a9c318b97
Use a single timer instead of two and use flags for events that can
lead to a relayout. the flags at the moment are size change and config
key for serialization change.
if they happen in the same moment (for instance when the serialization
config key is dependent from the size) if the new key already is saved
consider it correct and don't try to keep the distance to screen edges
from the old layout, ruining the saved one
CCBUG:360478
1c0c824cc5 uses Screen but that is inside
in QtQuick.Window. This happens to work in the lockscreen (something else
importing it above it?) but breaks in the sddm theme, with the default image
being super pixelated because sourceSize defaults back to 22x22.
BUG:418546
Highlight should work correctly if selected applet changes state
and is moved to hidden area and then comes back to visble area.
BUG: 435687
FIXED-IN: 5.22.0
Since both the splash screen and the logout greeter have an exclusive
zone of 0, they may be resized to accommodate for other layer shell
surfaces, for example panels.
We need to set an exclusive zone of -1 to ensure that the splash screen
and the logout greeter fill the entire screen.
The current KRunner utility methods have some issues:
- The runner id is kindof useless, especially when we only have one
action
- We basically create a bunch of temporaries whenever we use the utility
methods
- If one really has more actions and more complex logic one is better of
using QHash with the actions and an enum as the key
This saves us the custom implementation of mimeDataForMatch and
allows us to get the urls for example in milou, just like we already can
with the DBus runners.
The fake drag-and-drop events caused by the panel reuse the real event's
mimeData, and were handled asynchronously. By the time the fake event
has been dispatched from the event loop, the mimeData may already have
been freed. Send the fake events synchronously again.
A guard is added to avoid the original potential bug of infinite recursion.
BUG: 398440
If a service has recently failed multiple times, systemd will (quite
cleverly) not restart it. This includes DBus activation so is indepdent
of the systemd boot.
If a service gets into a broken state on a previous session where ithas
different environment variables and a different display server, we
shouldn't treat it as failed for a new session.
This shouldn't be needed with the other recent fixes, but it seems like
a good practice nevertheless.
Gnome are doing something similar:
https://gitlab.gnome.org/GNOME/gnome-session/-/blob/master/gnome-session/main.c#L565
Tell QQuickWindow when there is an alpha channel, otherwise it's
considered opaque and Qt/mesa renders it disregarding what's underneath.
Sometimes windows will have translucent areas and we want these to be
rendered cleanly on top of the scene. Alternatively it shows weird
noise.