Calls updateStruts on KScreen::Screen::currentSizeChanged instead of
KScreen::Config::outputAdded/outputRemoved.
When an output is (dis)conencted, it isn't added/removed, it is mearly
marked as (dis)connected. Therefore, updating struts on
outputAdded/outputRemoved doesn't work.
BUG: 349400
REVIEW: 124996
since we can't subclass Dialog (created from QML) inject a class
that will control it with event filters from the shell
(in an eventfilter as well installed on the qapp)
REVIEW:124555
This is fallout from the shared engine changes.
With the shared view, engine()->rootContext() is not the same as
rootContext(). One being global, the other being per window.
This resulted us in us overwriting the same "desktop" context property,
and so Desktop.qml always had the property desktop pointing to the last
created desktop view.
The most obvious symptom is that the add widgets dialog appeared on the
wrong screen.
BUG: 351292
REVIEW: 124792
Devive pixel ratio has some problems in plasmashell currently.
In particular:
- dialog continually expands (347951)
- Text element text is screwed (QTBUG-42606)
- Panel struts (350614)
It's also not a /huge/ deal as we do our own thing anyway, so the
experience is better to just turn off this scaling.
I've had this patch in my local code since forever.We should revert this
when all 3 are fixed.
CCBUG: 347951
REVIEW: 124463
PanelView::event() generates new events and sends them to itself via
QCoreApplication::sendEvent(), which calls the event() handler directly. To
prevent possible stack overflow, we use QCoreApplication::postEvent() to
dispatch the events from event loop.
REVIEW: 124375
This change adds support for shadows using the KWin specific shadow
protocol provided by KWayland. The protocol is inspired by the X11
protocol, so it can be easily integrated. The protocol takes a buffer
for each of the shadow parts and provides the same offsets.
To make this possible the code is better split into X11 and Wayland
specific parts.
REVIEW: 124360
This fixes a crash on shutdown when it has already deleted its
views but someone calls into availableScreenRect
BUG: 348511
FIXED-IN: 5.4.0
REVIEW: 124323
Set Qt::FramelessWindowHint to prevent QtWayland to create it's window
decoration.
This change was developed, compiled and tested in a kwin_wayland session
with each application running in the QT_QPA_PLATFORM=wayland.
REVIEW: 124210
We don't want the compositor to position the panel, thus we pass the
recommended position through the PlasmaShellSurface interface. The
compositor may or may not honor the passed position.
REVIEW: 124056
This change introduces the first part of Wayland integration. If
running on platform Wayland we try to bind the org_kde_plasma_shell
interface through the help of KWayland client library. If this interface
is available we can use it to create a PlasmaShellSurface for the
PanelView's window and mark that as a panel.
A compositor with support for the org_kde_plasma_shell interface can
use this information to make the window operate as a panel.
REVIEW: 124054
If containment plugin is provided in the shell package's defaults file
then use it instead of defaulting to desktopcontainment
BUG: 348617
FIXED-IN: 5.4
REVIEW: 123990
at startup the panelviews can't exist yet: panelviews have to be created
after desktopviews and the script has to be executed before the desktopviews
exist.
it's a bit hackish, but use temporary dynamic properties to store those
values that will be then used as soon the panelviews are created
reconsiderOutputs() may be called before the async config fetching
operation (KScreen::GetConfigOperation) has finished, so the pointer is
still null at that point. This can happen if qApp::screenRemoved fires
before kscreen was able to start the backend loader and pass back a
ConfigPtr.
The bug is rooted by in the dual-use of libkscreen and qApp's QScreen
handling. The timings here produce this race condition. This patch
should be quite safe, though, since it doesn't change the logic, but
rather makes sure this race condition bails out nicely by falling back
to just waiting until a kscreen config has arrived (which will happen
right after).
BUG:346590
REVIEW:123648
FIXED-IN:5.3.1
CHANGELOG:Fix crash on Plasma startup caused by a race condition
The backing class ConfigGroup opens config files in KConfig::FullConfig
by default, which prevents syncs when a desktop init script tries to
adapt the shell's appletsrc file, as Corona opens in SimpleConfig mode.
This reuses Corona's instance when the appletsrc is opened, fixing the
script and making the shell behave consistently around its config file.