Summary:
The license key is specified as GPL, while the actual code (I checked)
in all these cases is licensed under GPL version 2 or later. This commit
fixes the metadata.desktop files to reflect the actual license.
Test Plan: Manually checked, also compared to the keys looked for in kaboutdata.cpp
Reviewers: #plasma, sitter, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D6627
Summary:
--the highlight item used in the systray now uses
the panel thickness for correct positioning. In
the past there were cases that the highlight item
wasnt shown at all or was positioned a bit far from
the panel edge
Test Plan:
use the systray and investigate that highlight item
is positioned correctly
Reviewers: #plasma, mart, davidedmundson
Reviewed By: mart
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D5927
Summary:
We can get into a state where we have applets with broken metadata.
(which is a different bug)
Someone clearly wrote this code to try and guard against accessing an
invalid metadata when checking names, but instead made it so that when
we try to remove a specific task in the system tray we accidentally also
remove up any of these applets as well, which doesn't make much sense.
CCBUG: 377050
Reviewers: #plasma, mart
Reviewed By: mart
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D5422
Summary:
In the system tray we have a header at the top and the icons on the
left.
When there is no applet selected we want the icons to take up the full
width, because of this they have to start off under the title.
When an applet is selected we want these icons to dock to the left, but
not change their y position. The title then becomes the title of the
active applet.
If the active applet's title wraps this results in the icons moving all
over the place. See image in bug report.
This patch uses two text fields and toggles visibility so that we can
always align the icons to a consistent point
BUG: 378194
Test Plan:
Opened system tray with the arrow
Clicked on an applet and back
Opened system tray by clicking on applet
Reviewers: #plasma
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D5300
This way plasmoid and SNI context menus get accelerators assigned to by default.
CCBUG: 361915
Differential Revision: https://phabricator.kde.org/D5058
Summary:
when the panel containment collapses all its applets,
forward the event right to the internal systray and close the popup
Test Plan:
pinned systray correctly closes when opening a panel controller
replaces D4842
Reviewers: #plasma, broulik
Reviewed By: #plasma, broulik
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D4865
Instead of calling it in response to any of the properties it depends on.
This also saves some calls to this function on startup (80 instead of 90 for me with 14 tray icons)
and keeps plasmoids from shifting around just because their status changed from e.g. Active
to AcceptingInput (like touchpad when it asks for whether you really want to disable touchpad
with no mouse attached) although the item's effective visibility didn't actually change.
BUG: 375112
CCBUG: 365630
FIXED-IN: 5.10.0
Differential Revision: https://phabricator.kde.org/D4488
This part reverts commit b9af991403 which
changes plasmoids and SNI items to activate on mouse release instead of
mouse click.
This messes with xembedsniproxy which is relaying the mouse press
signals to the exembed client. Now at the time of relay, if the client
application queries the mouse state itself it's going to be wrong and
that breaks GTK.
BUG: 375930
FIXED-IN: 5.9.2
Reviewed-By: David Edmundson
This belongs in a header only (where it already is) and my IDE complains about it.
Since the macro expands to nothing anyway this doesn't change anything.
Differential Revision: https://phabricator.kde.org/D4456
This is the same Plasma ContainmentInterface does. Otherwise QtQuick gets confused about mouse state.
Differential Revision: https://phabricator.kde.org/D4455
This belongs in a header only (where it already is) and my IDE complains about it.
Since the macro expands to nothing anyway this doesn't change anything.
Differential Revision: https://phabricator.kde.org/D4456
This is the same Plasma ContainmentInterface does. Otherwise QtQuick gets confused about mouse state.
Differential Revision: https://phabricator.kde.org/D4455
This patch primarily is aimed at applications using libappindicator.
For example:
* Steam
* Discord
* Deluge
libappindicator doesn't provide functionality for raising an application,
but only a context menu. Since it also doesn't even provide the corresponding
DBus method, we use the resulting error to try to display the context menu
instead, which matches the behaviour on Unity and Gnome.
BUG: 375351
Reviewers: #plasma, davidedmundson
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D4301
Summary:
Fixes the issue most noticable with klipper's text field not having
focus; though use of debug rectangle showed it affected all applets.
Plasma popups get focus, which is given to our StackView, because that's a
focus scope that will give activeFocus to the focussed item within that scope.
However, nothing was explicity set, so nothing got focus.
Test Plan:
Debug rectangles followed by checking the original bug of opening klipper twice and on
both occasions typing immediately went into the text box
Reviewers: #plasma, mart
Reviewed By: mart
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D3988
Summary:
Quoting Thomas from the bug report:
>The tooltip over the triangle button when the popup was opened by a
widget says "Hide icons" which is misleading in this case because it
does not hide icons.
>Therefore, I'd keep the behavior as it is and just change the tooltip
to "Close popup" when it is opened regardless of the reason.
BUG: 374335
Reviewers: #plasma, mart
Reviewed By: mart
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D3914
Summary:
Changes triggered by investigation into a long-running high CPU usage bug with system tray animations. The systray itself had icon name to icon resolution code, which was being triggered (twice) for every icon, every time any icon in the systray was updated. This code was spinning up a KIconLoader on each of these instances, and throwing it directly away. Each one triggered a large quantity of memory allocations and disk scans.
This patch moves the extra bit of "appName" logic from the native part of the system tray to the statusnotifieritem datasource, which already had a stored 'customIconLoader' to handle icon theme paths, and removes the special lookup from the sytemtray applet completely. It also prefers icons provided by the dataengine to doing another lookup (contentious?). This removes all the extra CPU usage outside of the QML scene graph and graphics drivers locally.
This is very much a looking for feedback item - there are things about the icon loading paths I almost certainly haven't appreciated yet, and perhaps preferring loading by icon name in the applet has a another purpose.
BUG: 356479
Test Plan: Have tested locally with kgpg and steam, the two apps I have that trigger the old code path. In neither case, however, did the appName logic produce a different result to the code with just the icon search path in statusnotifieritem.
Reviewers: #plasma, davidedmundson, mart
Reviewed By: #plasma, davidedmundson, mart
Subscribers: davidedmundson, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D2986
when an applet is deleted, remove its fullrep from stackview before
the applet actaully goes away, as QQC1 StackView remains in an inconsistent
styate if one of its pages is deleted without having been fully removed
reviewed-by: kbroulik
BUG:373812
Scrolling over empty space or applet that doesn't handle
wheel events no longer activates desktop containment actions.
Differential Revision: https://phabricator.kde.org/D3572
Summary:
in ltr layouts, put the systray expander arrow at the left instead of
at the right
Test Plan: ran plasma with horiz and vertical panels both in normal modes and --reverse
Reviewers: davidedmundson, #plasma
Reviewed By: davidedmundson, #plasma
Subscribers: davidedmundson, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D3461
Summary:
anchor the layouts of config dialogs to left
this way they will look the same normally (they
are positioned at x 0 normally) but will be
anchored to right instead if layout mirroring is enabled
CCBUG:372721
Test Plan: opened all config dialogs both in ltr and ltr layouts
Reviewers: #plasma, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D3456
Summary:
anchor the layouts of config dialogs to left
this way they will look the same normally (they
are positioned at x 0 normally) but will be
anchored to right instead if layout mirroring is enabled
CCBUG:372721
Test Plan: opened all config dialogs both in ltr and ltr layouts
Reviewers: #plasma, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D3456
Summary:
In the change to the new system tray one of the old manual tests to run
SNIs got lost. This restores the version that was in Plasma 5.5.
Test Plan: Ran test. SNI appeared
Reviewers: #plasma, mart
Reviewed By: mart
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D3421
Summary:
it's very rare that the icon list in the hidden area
of the systray is long enough to get a scrollbar, but
when it does it had a couple of issues:
sometimes it gets an horizontal scrollbar too and
the wheel events gets eaten:
always disable the horizontal scrollbar and
ignore wheel events over the label.
wheel events over the icon are still managed by
the applet (so still possible to for instance
adjusting the volume on pa applet)
BUG:372050
Test Plan:
hidden all the cions to enable scrollbar: wheel over
the text scrolls the view, over the icon adjusts the volume
Reviewers: #plasma, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: davidedmundson, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D3263
Summary:
it's very rare that the icon list in the hidden area
of the systray is long enough to get a scrollbar, but
when it does it had a couple of issues:
sometimes it gets an horizontal scrollbar too and
the wheel events gets eaten:
always disable the horizontal scrollbar and
ignore wheel events over the label.
wheel events over the icon are still managed by
the applet (so still possible to for instance
adjusting the volume on pa applet)
BUG:372050
Test Plan:
hidden all the cions to enable scrollbar: wheel over
the text scrolls the view, over the icon adjusts the volume
Reviewers: #plasma, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: davidedmundson, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D3263
Summary:
A lot of applets have independent handling making escape close the
expanded representation. However not all of them do.
This leads to both duplicated code and inconsistencies, so we should
tackle this at the source.
If an applet was already using escape internally it will be accepting
the event, and so this code will not cause any regressions.
This patch also removes the stackview forwarding events to the active
child as this doesn't make sense - the active child will already have
focus and get the key event first, so this just created a recursive
chain (which Qt was thankfully fixing for us). Removing it is needed for
this to work.
BUG: 362657
Test Plan:
Pressed escape on various applets (e.g plasma-pa)
Pressed escape on the expander applet list view
Reviewers: #plasma
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D3257
Summary:
Some users complain that applets do not behave like applets in the
system tray, this is because they're not adding them in the system tray.
This makes it a bit more intuitive to add applets to the system tray by
allowing drag and drop of applets with NotificationArea=true into the
system tray.
CCBUG: 358283
Test Plan:
Dragged digital clock over system tray
system tray moved and the clock was added to the side
Dragged kate sessions over system tray
on drop, kate sessions applet was added to the tray
Reviewers: #plasma
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D3212
Summary:
Changes triggered by investigation into a long-running high CPU usage bug with system tray animations. The systray itself had icon name to icon resolution code, which was being triggered (twice) for every icon, every time any icon in the systray was updated. This code was spinning up a KIconLoader on each of these instances, and throwing it directly away. Each one triggered a large quantity of memory allocations and disk scans.
This patch moves the extra bit of "appName" logic from the native part of the system tray to the statusnotifieritem datasource, which already had a stored 'customIconLoader' to handle icon theme paths, and removes the special lookup from the sytemtray applet completely. It also prefers icons provided by the dataengine to doing another lookup (contentious?). This removes all the extra CPU usage outside of the QML scene graph and graphics drivers locally.
This is very much a looking for feedback item - there are things about the icon loading paths I almost certainly haven't appreciated yet, and perhaps preferring loading by icon name in the applet has a another purpose.
BUG: 356479
Test Plan: Have tested locally with kgpg and steam, the two apps I have that trigger the old code path. In neither case, however, did the appName logic produce a different result to the code with just the icon search path in statusnotifieritem.
Reviewers: #plasma, davidedmundson, mart
Reviewed By: #plasma, davidedmundson, mart
Subscribers: davidedmundson, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D2986
When there is already a config for a given plasmoid, reuse it
instead of creating a brand new plasmoid (having config groups
endlessy accumulating in the config file)
https://phabricator.kde.org/D2817
BUG:365618
BUG:365569
be able to destroy applets even when locked: delete their config
by hand.
Except in one case: when the applet gets automatically destroyed
by dbus activation do *not* clear the config, it should be
reused next time.
BUG:365618
BUG:365569
Summary:
Plasma::PluginLoader::self()->listAppletInfo(QString() is expensive, it
loads and parses every .desktop file individually. Twice.
The main offender is the defaultApplets property, which gets requested
multiple times from JS space, and we reparse the files every time.
Moving the work to the constructor solves that. This saves loading (on
my machine) ~900 desktop files.
Test Plan:
- wiped config, defaults appeared
- DBus activated still worked
- restore works as before
Running "time plasmashell" shows:
BEFORE:
plasmashell 4.01s user 0.46s system 87% cpu 5.116 total
plasmashell 4.01s user 0.54s system 74% cpu 6.124 total
AFTER:
plasmashell 3.17s user 0.42s system 68% cpu 5.259 total
plasmashell 3.18s user 0.46s system 81% cpu 4.475 total
Reviewers: #plasma, mart
Reviewed By: mart
Subscribers: mart, broulik, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D2756
I slapped a console.time in there and it would show 1ms even on some
of the subsequent invocations, so while QML engine should do some
caching magic, calling it once is better anway.
Differential Revision: https://phabricator.kde.org/D2719
Summary:
Applet::destroy doesn't delete the applet from Containment::applets in
the same event. Potentially a dbus activated service being restarted can
be added in this time, causing us to try adding a new applet with the
same ID before the first object is deleted.
Reviewers: #plasma, mart
Reviewed By: mart
Subscribers: mart, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D2703