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)
DesktopView's constructor calls PlasmaQuick::ContainmentView(corona,
nullptr), to initialise the parent class. nullptr being the parent.
In this case it makes sense as QWindow's overload of setParent must be a
QWindow, but memory management has to happen somewhere.
(cherry picked from commit 9bc1f3bcf6)
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.
Aggregate text for KRunner in DesktopView to prevent eating fast-typed characters.
CCBUG: 416145
partial solution: resolved for DesktopView, not resolved for running KRunner from shortcut
Test Plan:
When DesktopView is focused, typed characters show KRunner query.
All fast-typed characters should now appear correctly in KRunner window,
instead of only first typed character.
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.
Qt 5.15 introduces a new syntax for connections.
Framework code can't port away due to having to support Qt5.12 which
does not include the new syntax.
This filters out the category.
We should remove this once we depend on Qt5.15 in frameworks.
BUG: 424259
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
The volume setting in plasma-pa can exceed 100%. Currently the display is limited to 100%, which can result in a mismatch between what is shown in the applet and in the OSD.
This adds an overload to volumeChanged to keep the old one compatible given it is used by e.g. kmix
the geometry property remained broken for all plasma5 lifetime.
reading it makes sense, writing it not so much (ad it depends ffrom
containment to containment)
reading works, writing stays noop (for max compatibility)
I don't understand why QQmlDebuggingEnabler prints a warning, it's no
less secure until other command line args are passed.
However the warning is scary, so lets put a guard on it.
BUG: 422228
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:
In wayland, QScreen::availableGeometry() returns QScreen::geometry(), we could get a better value from plasmashell
BUG: 386114
Test Plan: Krunner isn't overlapped by a top panel in all cases
Reviewers: #plasma, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: meven, apol, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D27458
Summary:
* Make the panel spacer take a lot more space when is in expanding mode, so much
to "win" against the taskbar and collapse it to its minimum size (seems the
most expected behavior after some discussions in vdg channel)
* make it paint a background when in edit mode
* when two spacers are present in the panel, they try to center all the content
that is in between them (if possible), so that is always at the center of the panel,
even if there is more content on one side rather than the other
Test Plan:
{F8110981}
{F8112648}
Reviewers: #plasma, #vdg, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: davidedmundson, davidre, broulik, ngraham, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D27481
Summary:
It doesn't make sense to pass const `QWindow`s to `PanelShadows` because
a `KWindowShadow` needs a mutable `QWindow` object.
Test Plan: const_cast in PanelShadows::Private::updateShadow is gone \o/
Reviewers: #plasma, apol
Reviewed By: apol
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D26985
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