The current code is broken as the course of events is:
- we delete the containment
- an existing connect to containment deleted goes to
panelContainmentDestroyed
- this updates m_panelViews and calls deleteLater
- this deleteLater isn't run before other exit handlers
(cherry picked from commit d580367692)
A popup needs to grab the keyboard and the pointer in order to dismiss
itself when another window is clicked. It works perfectly on X11.
On Wayland though, the compositor is responsible for dismissing popups
if some surface of another application has been clicked. Note that I
said "of another application." If user clicks some surface of the same
application, the compositor won't dismiss the popup.
If the application uses only QtWidgets, then the popup will be closed
as expected in both cases. But if the application uses both Qt Quick and
Qt Widgets, e.g. plasmashell, then the popup won't be dismissed if a
QQuickItem has been clicked.
It is a Qt bug, but for the time being, this change introduces an event
filter that monitors Qt::MouseButtonPress events and when needed closes
the active popup widget. This is a workaround.
CCBUG: 379635
(cherry picked from commit 6689abaffb)
ShellCorona is a messy class doing mulitple functions.
This patch splits out all telemetry code into a new class, meaning it's
easier to extend. Code remains the same.
The HIG specifies that actions and menu items should start with action
verbs, and that ellipses should only be used for actions that open a
separate window to complete the action. This commit applies that to the
"Activities..." menu item.
Currently updating the DesktopView geometry and emitting signals notifying of changes to screen geometry are connected independently to QScreen::geometryChanged(), while screenGeometry() as well as availableScreenRect() and availableScreenRegion() depend on the DesktopView geometry. The incorrect order of slots being called causes the task manager to behave incorrectly on screen configuration changes, displaying either no windows or windows from a wrong screen. This also affects the desktop pager widget when configured to show the current desktop only.
BUG: 373075
Summary: When disconnecting the primary screen on a dual monitor setup and reconnecting it back, the available size of the secondary screen desktop may be reduced to the thickness of the primary screen panel, as can be seen by dragging a rubber band or trying to move some widgets. This apparently happens because the QML bindings had last been updated at the short moment when both panels were temporarily placed on the same screen. Update availableScreenRect therefore when a panel changes its screen.
Reviewers: #plasma, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: broulik, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D29831
Summary:
Since the release of KDE Frameworks 5.68.0 we can now
use the methods exposed in KActivities::Controller to trigger a
switch to the previous or next activity from ShellCorona.
Reviewers: ngraham, ivan, apol
Reviewed By: ngraham, apol
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D28083
Summary:
Before loading the view, query all plasma processes and show why they're using
KUserFeedback.
Depends on D26569
Test Plan: Manual testing
Reviewers: #plasma, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: ngraham, davidedmundson, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D26570
Summary:
We currently have a mouse-wheel action to switch to the previous/next activity,
but it wasn't possible to assign a global keyboard shortcut to these actions.
As discussed on Phabricator, this doesn't define a default key-sequence yet,
but at least gives users the possibility to assign there own ones, which wasn't
possible before.
Reviewers: apol, davidedmundson, #vdg, #plasma, ngraham
Reviewed By: davidedmundson, #vdg, #plasma, ngraham
Subscribers: ngraham, romangg, ivan, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D22382
Summary:
I'm trying to implement the idea of @davidedmundson from this https://phabricator.kde.org/T10172 with my limited knowledge of C++/Qt/KDE/programming. This is the start of a new class so it could lack many things but it's usable.
- It allows clients to set the available screen rect/region from outside through dbus.
- The final available screen rect/region would be the intersection of all set values.
- When a client dies, its values would be removed automatically.
Test Plan:
+ qdbus-qt5 org.kde.plasmashell /StrutManager test org.kde.lattedock LVDS-1 0 24 1366 768
+ After killing latte-dock, the values are got only from plasmashellCorona.
{F7820969}
Reviewers: #plasma, mvourlakos, davidedmundson, mart, apol
Reviewed By: #plasma, davidedmundson
Subscribers: davidre, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D25807
Summary:
edit mode menu action
edit mode dbus property for systemsettings
containmentlayoutmanager goes out of edit mode only when the whole
plasma app loses focus, so the panel controlled doesn't make it go out
of it
Test Plan:
iaction shows in context menu, works
property exposed on dbus works
Reviewers: #plasma, #vdg, ngraham, GB_2, davidedmundson
Reviewed By: #plasma, #vdg, ngraham, GB_2, davidedmundson
Subscribers: GB_2, ngraham, davidedmundson, plasma-devel
Tags: #plasma
Maniphest Tasks: T10190, T11094, T10402
Differential Revision: https://phabricator.kde.org/D24264
Summary:
It offers 2 main features:
- Configure the system-wide KUserFeedback kill-switch
- Provide a setting for how much information we want our Plasma to be sending
Test Plan:
Tested it together with Discover, works fine.
{F7497259}
Reviewers: #plasma, vkrause, ngraham
Reviewed By: ngraham
Subscribers: aspotashev, ngraham, bcooksley, davidedmundson, ognarb, broulik, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D24011
Summary:
Use the new icon added in D22155.
{F6948276}
{F6948277}
Test Plan: Open the desktop context menu and also search for "activity" in KRunner.
Reviewers: #plasma, #vdg, ndavis
Reviewed By: #vdg, ndavis
Subscribers: #vdg, plasma-devel, #plasma
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D22167
Summary:
We had an overly complex and in practice unexploited system to detect
which shell to use,
This patch changes it to default to the desktop, still allowing to
modify which to use from --shell-plugin argument.
Test Plan:
Starts up fine, --shell-plugin/-p still works, which is what
bhushan told me is important for plasma mobile.
Reviewers: #plasma, davidedmundson, bshah
Reviewed By: #plasma, davidedmundson, bshah
Subscribers: bshah, davidedmundson, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D22874
Summary:
The macro is on its way to getting deprecated, so we better start
adopting the suggested alternative just as well.
Test Plan: plasmashell runs fine
Reviewers: #plasma, ngraham
Reviewed By: ngraham
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D21493
Summary:
If the desktops are already visible, there's no much need to hold on the KSplash. Panels should be ellegantly displayed when they're ready.
As discussed in T10958.
Test Plan:
Made sure that it gets emitted at the right time.
Timing-wise, my system takes about 1s to show the DesktopView and 2s to show the PanelView (I have 1 panel)
Reviewers: #plasma, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: broulik, davidedmundson, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D21494
Summary: Put load in queue of the event loop to wait for the whole set of containments to have been deleteLater(), as some like FolderView operate on singletons which can cause inconsistent states
Test Plan:
now switching look and feel between 2 themes that use both FolderView
as desktop containment, the icons are still there
Reviewers: #plasma, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D21513
during l&f switch, use destroy() which does a proper cleanup
and gives applets time to react to destroyedChanged, so we're sure they
properly cleaned up their states.
This among other things makes the in-app menubar work again when the
user switches from a style with a global menu bar to one without
Summary:
load() is called a few times and different states. After the change I
also get the warning on a regular load.
This patch returns early whilst we're in the loading state, but still
prints the warning should kactivitymanagerd fail.
Reviewers: #plasma, mart
Reviewed By: #plasma, mart
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D18922
Summary:
Ran into this gotcha the other day, and it was impossible to resolve
without code debugging.
Reviewers: #plasma, bshah
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D18493
It takes almost 30ms here to create the engine and then we usually don't end up using
it as all update scripts had already been processed in the past.
Differential Revision: https://phabricator.kde.org/D14751
Summary:
Port plasma desktop scripting to qjsengine, removing every trace of QScript from plasma-workspace.
The scripting is 100% API compatible.
the bindings are partly done on the javascript part as some things are only possible there and not on the QJSEngine part:
* setting AppInterface as the globalobject's __proto__ with property getters that are evaluated every time
* setting functions that act as constructors (using newQMetaObject gives way more complex and uglier c++ code in Containment, as the scriptengine is not immediately accessible)
* a QRectF wrapper which exposes all properties and methods that were exposed in the previous implementation
Test Plan:
* some manual api test from the interactive console
* tested both from the desktop console and first start with some pretty complex layouts from lnf packages (the default one, netrunner, united, elpas)
* tested every property/methos of the qrectf wrapper
Reviewers: #plasma, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: davidedmundson, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D13112
Summary:
If we cannot create a GL context, instead of showing an error and
quitting, switch to using the QtQuick software renderer and restart.
If software mode is already set, then show the error as before. This
could happen in the case of the software renderer not being installed.
Test Plan:
After doing some driver changing, I ended up with the annoying "plasma can't start"
message.
Without the entry in kdeglobals I now start plasma and it seamlessly comes up
working.
Reviewers: #plasma
Subscribers: mart, broulik, graesslin, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D11722
Summary:
with new corona containment query functions in D11361 the data
copy done in m_desktopContainments is no more necessary: this should
make things a bit more simple and robust
Test Plan: launched plasmashell, tried to add/remove activities and screens, all keeps working
Reviewers: #plasma, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: davidedmundson, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D11801
Summary:
Original decision didn't really have a rationale:
https://git.reviewboard.kde.org/r/125648/
It's causing bugs in people doing somewhat sensible things.
BUG: 380347
If widgets are locked, the script will still fail when it tries to do
something it can't.
Reviewers: #plasma, broulik
Subscribers: mart, broulik, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D11375
Summary: QUrl::fromLocalFile can't be used when packages are qrc
Test Plan: plasashell loads correctly with packages from qrc
Reviewers: #plasma, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D9176
Summary: This is the implementation of the new Plasma Corona API, as described in https://phabricator.kde.org/D8566
Reviewers: #plasma, ervin, dvratil, mlaurent, hein, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: mwolff, apol, mart, davidedmundson, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D8567
Summary:
There is (a very appreciated) a description of why loading the
alternatives dialog was queued.
This causes issues for autohide as it gives us a time when the menu is
closed and we don't have anything else inhibiting autohide.
The comment doesn't seem to hold true with the latest frameworks which has
some mouse releasing code on the menu itself.
Test Plan: Clicked a lot. Clicks worked first time.
Reviewers: #plasma
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D6647