XdgActivationTokens are loaded async. To acheive a job like pattern we
were comparing serials in our slot when one was created.
On wayland this isn't ideal because we're slowly building up an
increasibly long list of lambdas being run, but they'll all no-op.
On X11 because lastInputSerial is always 0 we run the slot multiple
times for every system tray item each time an item is clicked or an
application is launched.
For xembedsniproxy this is especially problematic problematic as we will
trigger synthesised input events in our slot.
BUG: 444385
In most cases the port is trivial and can even simplify the code like in
the case of the system tray applet. In the case of notifications applet,
this is causing a bigger refactor and it's now also using a TextArea
that provides the automatic scrolling when selecting behavior.
CCBUG: 437155
This setting is more appropriate when in tablet mode, as it makes the
System Tray icons scale up to fill the panel's height/width. When tablet
mode exits, it returns to the default icon size setting (unless the user
already set to always be in "scale with panel" mode.
CCBUG: 439922
This makes the expander arrow match the scale of all the other icons
when using the "Scale with panel width" setting. Otherwise it looks too
small and is hard to use in tablet mode, if you're using that setting for
increased touch-friendliness.
BUG: 439922
FIXED-IN: 5.23
Plasmashell already handles closing the expanded representation
when the config dialog is openend (or keeping it open if it's
pinned).
Tested with opening system tray and applet configs both when pinned
and when unpinned.
BUG:440263
Fix a visual glitch that caused the icons and highlight of the items in
the HiddenItemsView of the systray to be blurry. This commit fixes this
by preventing the items from being positioned in a non-integer position.
This patch fixes an issue where action remain disabled after changing its
visibility off/on by filtering actions and creating buttons for visible
actions only. It also slightly improves the code.
The Ids from SNIs are not the application id in the first place.
Also when activating an app which does not support the new method
on the inferface we never stop the startup effect.
BUG:439682
Some applet config titles contain ampersands for mnemonic purposes. PC3.ToolTip filters them out but QQC2.Tooltip does not, so they are visible in the system tray config window.
BUG: 437605
Sometimes parent component on the applet is not fully updated - for
example effectiveStatus is not yet read from the model. In such case it
will have default value leading to undesired effect.
Call all `updateHighlightedItem` in `Qt.callLater` so that it is called
in next event loop. As a bonus it is called only once, which can improve
performance.
BUG: 437105
FIXED-IN: 5.22.0
This code was trying to filter out the configure action but failing
because it was comparing a QMenuItem to a QAction. We need to compare
the QMenuItem's internal QAction in order for the configure action to
ever match.
This will result in cleaner diffs when a new value is added
and clang-format will not indent them with the opening
brace of the initializer list which makes is slightly easier to read.
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
Currently, applet can lose keyboard focus if you click on one of the buttons in its header, after which if you collapse and expand the applet again, the focus will remain on this button. This is extremely inconvenient if you prefer to use the keyboard to work with the applet (for example, with the Clipboard applet). This patch set keyboard focus back to the applet after switching the active applet (as well as after collapsing/expanding it).
System Tray forgets Dropbox hidden state after logout+login
The SNI Id should be consistent between sessions, but Dropbox does not
follow the SNI specification - it adds PID as a suffix of Id.
As this is very popular application and it was not fixed upstream for
many years it is reasonable to add workaround in SystemTray.
BUG: 378910
FIXED-IN: 5.22.0
The context property version is slower to access and won't be supported
in Qt6. Let's port away from it and use the singleton version instead.
Here was my full process for making this change:
1. Made the change with `find . -name '*.qml' | xargs perl -pi -e 's/units\./PlasmaCore\.Units\./g'`
2. Verified no more occurrences with `grep -r " units."`
3. Made sure this didn't change any comments in a silly way by inspecting the output of `git diff | grep "+ " | grep "//"`
4. Manually inspected the full git diff to make sure there were no other unintentional or silly changes (there were none)
5. verified that all changed files have the PlasmaCore import with the correct name with `for FILE in `git status | grep modified | cut -d ":" -f 3`; do grep -q "as PlasmaCore" $FILE || echo "$FILE needs the PlasmaCore import"; done`
forward containmentDisplayHints from panel to the systray, adding the
systray specific ones which are
Plasma::Types::ContainmentDrawsPlasmoidHeading and
Plasma::Types::ContainmentForcesSquarePlasmoids