Summary:
qDeleteAll will iterate through containments() however this is
dynamically changing the list we're iterating through.
Particularly bad is deleting the panel might delete the system tray
containment, leading to a double delete on a now dangly pointer.
Test Plan: kquitapp5 plasmashell. No crash
Reviewers: #plasma
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D1890
Summary:
On Wayland we need special glue code to make KWin aware of the position
the DesktopView wants to be. This change ensures that DesktopView calls
setPosition on the PlasmaShellSurface on creation and whenever the screen
geometry changes.
With this change DesktopViews are properly positioned in a multi-screen
setup on Wayland.
Reviewers: #plasma_on_wayland
Subscribers: plasma-devel
Tags: #plasma_on_wayland
Differential Revision: https://phabricator.kde.org/D1889
when the containment (or an applet in it)
gains the state Plasma::AcceptingInputStatus
force the focus to the panel window, restoring
the behavior of Plasma4
BUG: 364276
This fixes the panel configuration having shadows on all sides, casting a shadow onto
the panel and causing an ugly glitch during the sliding animation.
Also expose the borders as property to the QML part but it doesn't use it currently.
Differential Revision: https://phabricator.kde.org/D1778
I noticed that panels had borders on all sides and it turns out PanelShadows was never
actually told which sides should have shadows.
To reduce code duplication I expose the enabled borders as property to the Panel.qml
which itself does the same calculation from QML again and does it many times.
Differential Revision: https://phabricator.kde.org/D1756
don't hardcode -a as the internal systray screen anymore.
give it the new customembeddedcontainment containment type,
and ignore those in panel creation.
the old systray logic in containmentforscreen gets reused.
The volume applet would switch at 26% from low to medium whereas the OSD did that at 25%.
Also turn the logic around so it's identical to what plasma-pa does.
Differential Revision: https://phabricator.kde.org/D1635
QX11Info::connection() looks up the connection in the QPA.
The Wayland QPA happens to have a property with the same name,
so it happily reinterpret_casts a wl_connection_t* to xcb_connection_t*
and disaster ensues.
Differential Revision: https://phabricator.kde.org/D1718
The newly introduced HiddenStatus which is used by eg. the desktop pager to completely
hide itself when there is only one virtual desktop, has a higher value than
RequiresAttentionStatus for ABI compatibility reasons, so auto-hide was never actually
enabled if you had this applet (part of the default setup) with just one virtual desktop.
BUG: 362105
FIXED-IN: 5.6.5
Differential Revision: https://phabricator.kde.org/D1683
This is to provide feedback when the on-screen keyboard is enabled or disabled in response
to the user taking some action, such as flipping over a convertible laptop.
Differential Revision: https://phabricator.kde.org/D1563
Summary:
starting the stuts timer in resize/move events means we don't have to
litter it across any code that might move/resize the panel, also we get
event compression for free (so could probably remove the timer in
future).
Much neater and fixes a bug.
BUG: 362887
Reviewers: #plasma
Subscribers: plasma-devel
Projects: #plasma
Differential Revision: https://phabricator.kde.org/D1584
loadScriptInInteractiveConsole requires user interaction which blocks
some purposes, like setting the desktop background from an app.
This runs a given script directly from a passed string without any
prompts.
CCBUG: 217950
REVIEW: 125648
Summary:
Removing the shadow only affects the pending state, we also need to
explicitly commit the Surface to apply the state change.
Reviewers: #plasma, mart
Subscribers: plasma-devel
Projects: #plasma
Differential Revision: https://phabricator.kde.org/D1399
My second (internal) screen is disabled and has 0x0 size.
This fixes setting the struts for panel and correctly calculating
the available desktop area.
CCBUG: 348043
Differential Revision: https://phabricator.kde.org/D1238
Summary:
cache screenGeometry in local var
replace size().width() with width()
Reviewers: #plasma
Subscribers: plasma-devel
Projects: #plasma
Differential Revision: https://phabricator.kde.org/D1171
the panel geometry is intersected with the QScreen geometry,
that doesn't work with rects of empty sizes.
This fixes the panel sometimes being positioned at 0,0 at startup
the api containment.name was incorrect and broken,
(using it it actually breaks the whole layout since
breaks the containment->activity association)
in order to make it coherent with the other activity
related api, add global functions activityName
and setActivityName
it's not very object oriented but is coherent with
the other api already in place
(as there isn't an "Activity" class binding)
Don't save and restore panel length
length gets overriden from the QML side so there is no point loading and
restoring it.
This also simpifies code somewhat removing places where we clearly did
the same bit of code twice.
Summary:
The default window type is desktop, so we should also tell Qt that it's
a frameless window. Not doing so means that on construction of the
platform surface our plasma-integration plugin will request a server
side decoration for the window. Which means KWin creates a deco and
destroys it again once the flag propagated. But it also means that the
window gets misplaced due to the temporarily added deco.
By setting the flag the plasma-integration never asks for the deco to
be created in the first place and in all my tests so far the window was
positioned correctly.
Reviewers: #plasma, sebas, mart
Subscribers: plasma-devel
Projects: #plasma
Differential Revision: https://phabricator.kde.org/D1156
Makes it possible to test how/if a plasmoid behaves correctly on the most
similar environment possible to what the user would find on a production
system.
* Loads a plasmoid on a panel and the desktop.
* Lets it test his own stuff (loading test/test.qml within the plasma
package)
* Terminates with an error if it wasn't successful
REVIEW: 127346