BUG: 427530
Hunting this one down since mid-March...
In "native" Plasma containments like the panel, desktop, and plasmawindowed, the `LogindSessionBackend` in `libkworkspace` enters the "Ready" state nearly instantly, before any signals can even be attached. In other containments like Latte Dock and plasmoidviewer, however, the initialization takes some time to complete (unsure why). RootModel was not watching or waiting to check what the session backend's state was, resulting in validity checks being done too soon and never checked again.
(cherry picked from commit 2cc819f39b)
When an applet is about to be deleted, it will save its config
automatically, but in this case the system tray doesn't need to load the
config again.
BUG: 453726
(cherry picked from commit 6da91d053b)
In case both IconName and IconPixmap are provided, the system tray
applet is going to prefer the pixmap.
That can create a dark icon on dark background bug because plasma can't
recolor pixmaps.
The SNI spec recommends visualizations to prefer icons over pixmaps:
> An icon can either be identified by its Freedesktop-compliant icon
> name, carried by this property of by the icon data itself, carried by
> the property IconPixmap. Visualizations are encouraged to prefer icon
> names over icon pixmaps if both are available (FIXME: still not very
> defined: could e the pixmap used as fallback if an icon name is not found?)
BUG: 418996
(cherry picked from commit 7363d0e0f3)
28537cf3ff made the color dynamic, but
neglected to respect the Plasma color scheme, if any. This causes
problems with Plasma themes that have their own colors and don't
respect the systemwide color scheme, such as Breeze Twilight.
Fix it by using the appropriate colors from the PlasmaCore color scheme
object, not the systemwide object provided by Qt.
BUG: 453348
FIXED-IN: 5.24.6
(cherry picked from commit 19d9bc7e39)
In the past, application Favorites were stored with their .desktop file path
such as "/usr/share/applications/org.kde.dolphin.desktop". But now those
entries are stored like so: "applications:org.kde.dolphin.desktop".
This commit converts old DB entries to the new style, which solves the issue
of users with old databases being unable to change their Favorite items.
BUG: 385814
FIXED-IN: 5.24.5
(cherry picked from commit ff446e235e)
Kolourpaint has hidden "Tools" menu, which would show up in
global menu otherwise.
Moreover, don't `void*` cast so QML can access the `QAction`
BUG: 443505
(cherry picked from commit 2e056ed6e5)
dateTimeChanged is called every second. This in turn checks if the date
has changed. If so we call setupLabels which updates the clock.
The date label used to use main.currentTime which is a value set in the
binding of the timeLabel's text property. The order of this being
updated vs running this code is undefined.
Bug 1: We compare an ever so slightly different date source to the one
used in the date text label.
Bug 2: We are not necessarily updating the date label with the most
updated time.
Overall we can't mix declarative and imperative design patterns. This
patch commits to being imperative and introduces a function to get the
current time so that the date label and time label will always get the
most up to date value even if they update from different trigers.
BUG: 452554
FIXED-IN: 5.24.5
(cherry picked from commit 5430c3a029)
When a service appears right after the ListNames() call finished, but
before the QDBusPendingCallWatcher is set up, the ::serviceRegistered
signal will be queued before the ListNames() response. As a result,
the service will be ignored by DBusServiceObserver.
Switching to QDBusInterface::callWithCallback() ensures that the
result slot is queued as soon as the response arrives, thus avoiding
the race.
Credits go to Sam Edwards for identifying the problem in
https://bugs.kde.org/show_bug.cgi?id=422111#c69
BUG: 422111
(cherry picked from commit 3751f49cc5be219e63c7fae1df9f1b6e77f5762a)
If preferred, compact and full represenation are set to the same value,
the value of appletShouldBeExpanded will be true, which means the applet
will be expanded by default. In this case, only fullRepresentation will
be created and compactRepresentationItem will simply be null.
If compactRepresentationItem is null, also check the fullRepresentation
for mouse event forwarding.
This fixes manage-inputmethod applet not working if it's hidden in the
tray.
(cherry picked from commit 69702475e5)
There's no need to reconstruct the entire menu, when it exists already.
Also shows correct behavior on Wayland because the imported menues have
correct parents compared to the new one.
BUG:438467
(cherry picked from commit 16ae8b9e69)
When the mouse hovers the appmenu item, the text color should be inverted to the background
color. Before this commit, the text was still the same color as the "REST" state, making it
difficult to recognize.
(cherry picked from commit 28537cf3ff)
Instead just set the right focus properties so that we are actually
declaring what we want instead of bypassing all the focus mechanisms.
This also uses Plasmoid.expanded to ensure we reevalute the focus
binding when the applet is reshown so it is in a known state.
(cherry picked from commit 1f92caf39e)
When the filter is disabled, don't forward any input to the filter
because it will return nothing.
CCBUG: 450989
(cherry picked from commit 8716053a37)
Slider refuses to set a value beyond its end, make sure "to" is up-to-date
before we attempt to set "value".
Position changed may be emitted before Length change was emitted.
Fixes media controller position not being up to date on first open.
(cherry picked from commit 1172054d5e)
The item's implicit size is supposed to be the size of its contents.
Fixes a regression from ScrollView port and restores line count
limit behavior (8 lines on popups, no limit in history).
(cherry picked from commit 49853de1ed)
When creating a new KService, it will try to read the file as a desktop
file, but if the file is a large non-desktop file, it will hang for a
long time.
Verify the file is a desktop file, and if not, skip creating KService
and run the match directly.
BUG: 442970
FIXED-IN: 5.24.4
(cherry picked from commit f984425b65)
Discover current minimum height of applet labels in hidden
view and apply it for all of them when they are shown
inside hidden applets view. This implementation provides
always only the maximum needed label height based on label
contents.
BUG: 438347
FIXED-IN: 5.24.3
(cherry picked from commit 8fcdfc309f)
The prefered is to show context menu on mouse pressed event, not click,
but this causes few issues for SNI.
Some legacy applications still relies on XEmbed to show tray icon.
We use xembedsniproxy to relay the mouse press signals to the XEmbed client
but some applications (including GTK) validate the mouse state.
Mouse released state is expected, but as it is still pressed context
menu does not show.
BUG: 409768
FIXED-IN: 5.24.3
(cherry picked from commit a02d1ca27b)
Unlike when the clock is in a panel, there is plenty of space when it is
on the desktop. This means that we can safely let the date string word
wrap rather than shrink.
BUG: 450632
FIXED-IN: 5.24.3
(cherry picked from commit 02af6bd9ae)
1. Don't change the current item when not saving it.
2. Use Qt.callLater as the item will be moved to the top after saving
it, and we would like to hightlight the real first item.
ListView will absorb the key events, so `Keys.onPressed` in
ClipboardPage will not receive the event. Instead we should connect
those key events to `arrowKeyPressed()`.
BUG: 448811
BUG: 450040
FIXED-IN: 5.24.2
(cherry picked from commit 95a267d582)
Get rid of the delayed optimal size calculation caused by Qt.callLater
and calculate optimal size immediately when an applet's size changes.
This removes the unnecessary jumping of applets that are centered between 2
spacers.
BUG: 431668
FIXED-IN: 5.24.2
(cherry picked from commit 5824e63620)
When we are using a charge threshold, the kernel may stop charging
within a percentage point of the actual threshold and this is
considered correct behavior, so we have to handle that. See
https://bugzilla.kernel.org/show_bug.cgi?id=215531.
Also, Upower may give us a status of "Not charging" rather than
"Fully charged", so we need to account for that as well. See
https://gitlab.freedesktop.org/upower/upower/-/issues/142.
BUG: 435931
(cherry picked from commit 49013bf4a5)
StatusNotifierItem.qml does not explicitly handle the case of
right-clicking, which causes right-clicks to be ignored unless you also
happen to have the libappindicator package installed, which injects a
handler for this itself. But this should work even if you don't have
that package installed; this commit fixes it.
BUG: 449870
FIXED-IN: 5.24.1
(cherry picked from commit 03f982261b)