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.
all scripts in the folder
$prefix/share/org.kde.plasma.desktop/updates will
be correctly executed now
(other shell packages will have their name instead of
org.kde.plasma.desktop)
Appearantly right() / bottomRight() / topRight() returns values with 1
pixel x off for historical reasons and hence 1px gap. This causes the
autohide panel not hiding automatically.
BUG: 339323
BUG: 340549
FIXED-IN: 5.3
REVIEW: 123136
Notifications dataengine checks the applicationDisplayName() against the
event title and if it same it allows to 'spam' aka it will not merge
similar notifications. But when we started to use KAboutData this broke
functionality. KAboutData will set only properties available in
QCoreApplication and hence applicationDisplayName will be different.
This fixes it by setting applicationDisplayName.
BUG: 345149
FIXED-IN: 5.2.2