Otherwise ensureWindowType calls winId, triggering a window creation and
since the geometry is rect(0,0,0,0), the view is moved to the screen that
contains 0,0.
BUG: 353975
Currently we're hitting a bug where the panel won't be displayed in the
correct position because of how the screen it's in is computed. See:
https://codereview.qt-project.org/#/c/139533/
This patch makes sure there's no off-by-1 issues by placing the screen
initially at the center.
To move the panels of screen [i] to the next screen, we should query for
the panels of DesktopView [i], not of DesktopView [i + 1]. Otherwise the
panels aren't shifted to the new screen. Thus QT shifted the
panels itself, but hid them afterwards. Besides the panels were not
visible, it raised an assert in screenInvariants().
REVIEW: 125694
When a new primary output gets connected, it's possible that
primaryOutputChanged() is called before addOutput(). When addOutput()
was called afterwards, this led to two DesktopViews on the same
screen. This raised an assert in screenInvariants().
Solve this by not doing anything in primaryOutputChanged() when the new
primary output is not used for a DesktopView yet.
REVIEW: 125693
We have a
connect(KWindowSystem::self(), &KWindowSystem::showingDesktopChanged,
[dashboardAction](bool showing) {
dashboardAction->setText(showing ? i18n("Hide Dashboard") :
i18n("Show Dashboard"));
in the class constructor. Changing it here too is pointless.
REVIEW: 125669
execute a script from the look and feel package when
an applet is added, adding to the script environment
"applet" that wraps the currently added applet and
"containment" that wraps its containment.
from there the javascript part can do anything it can do
in the startup script as well.
In case of containments, "applet" and "containment" will
be the same thing
REVIEW:125562
Use KWin to lower/raiser panel in windows can cover mode with edge
activation like autohide does.
This means if you have a maxmised menu you can still open the panel by
moving the mouse to the bottom of the screen
BUG: 343448
Otherwise it enters an infinite loop where the DesktopView starts to be
moved from a screen to another. That happens on XCB (only platform I've
tested) because setScreen and setGeometry will send an XCB event that is
later processed by the application again.
This should probably backported to Plasma/5.4, but considering I'm running
Qt 5.6 I would really appreciate it if someone can check if it works for
him and cherry-pick it there. An easy way to test is to change the primary
screen (in a 2-screen set up) using the kcm or xrandr.
CCMAIL: plasma-devel@kde.org
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