Summary:
If we cannot create a GL context, instead of showing an error and
quitting, switch to using the QtQuick software renderer and restart.
If software mode is already set, then show the error as before. This
could happen in the case of the software renderer not being installed.
Test Plan:
After doing some driver changing, I ended up with the annoying "plasma can't start"
message.
Without the entry in kdeglobals I now start plasma and it seamlessly comes up
working.
Reviewers: #plasma
Subscribers: mart, broulik, graesslin, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D11722
Summary:
DesktopView contains a property candidateContainments which are all containments with the same screen for all activities.
Plasma mobile can use it to do activity switching with a swipe gesture
replaces D11333
Test Plan:
tested with gesture based activity switching in plasma mobile including creating and deleting
of activities
Reviewers: #plasma, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D12351
Summary:
The DesktopView replaces the default ConfigView for itself with a
specialised ContainmentConfigView. It's only loaded by the desktop, and
is more of a Desktop-ConfigView than generic containment.
The system tray applet doesn't show it's own config, but instead shows a
config of its internal system tray containment by overriding the
configure action.
This causes the desktop view to mistakenly shows it's specialised
desktop config view when the system tray is configured.
This patch adds an explicit check on the containment type.
Test Plan:
Clicked on sys tray settings on desktop
Clicked on normal desktop settings
Clicked on sys tray settings on panel
Reviewers: #plasma, broulik
Reviewed By: #plasma, broulik
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D9526
Summary: QUrl::fromLocalFile can't be used when packages are qrc
Test Plan: plasashell loads correctly with packages from qrc
Reviewers: #plasma, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D9176
Test Plan: set backend. Didn't get an error message
Reviewers: #plasma
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D8012
This will route the event through the containment first which can then intercept it, e.g. to prevent
Escape from exiting showing desktop while renaming where it should only cancel that.
CCBUG: 352988
Differential Revision: https://phabricator.kde.org/D7630
requestActivate() doesn't raise the window. The same had been done in PanelView but not
for DesktopView. This way a minimized config dialog (e.g. you want look at the wallpaper
in its full glory) will be raised if you open it again through the applet/desktop context menu.
CHANGELOG: A minimized config dialog on the desktop (e.g. wallpaper settings) will now be un-minimized when trying to open it multiple times
Reviewed-By: David Edmundson
Summary:
If we changed containment with the config open, relaunch the config
dialog but for the new containment.
This provides a somewhat seamless changing desktop types.
BUG: 355642
Test Plan:
Opened config, changed type, hit apply -> dialog was replaced
Opened config, changed activity -> Dialog was replaced
Opened config, Closed Config, changed activity -> Nothing happened
Reviewers: #plasma, mart
Reviewed By: mart
Subscribers: mart, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D4086
Summary:
this replaces the approach with the expose event in
20b439a4f4 by directly monitoring the xcb screen change
notify native event
Test Plan:
attaching and detaching the external screen on a laptop
configured to deactivate the internal screen upon connection
same behavior as D3777
Reviewers: sebas, davidedmundson, #plasma
Reviewed By: davidedmundson, #plasma
Subscribers: pmuralidharan, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D3822
Summary:
this replaces the approach with the expose event in
20b439a4f4 by directly monitoring the xcb screen change
notify native event
Test Plan:
attaching and detaching the external screen on a laptop
configured to deactivate the internal screen upon connection
same behavior as D3777
Reviewers: sebas, davidedmundson, #plasma
Reviewed By: davidedmundson, #plasma
Subscribers: pmuralidharan, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D3822
Summary:
in a corner case that is used a lot, the internal laptop screen
gets automatically disabled when an external screen is connected.
the only QScreen* available from the QGuiApp gets recycled for the
new screen and there is no signal this switch occurred.
To work around this, as all the view get an expose event when this happen,
monitor the rename of the desktopview's qscreen and manage this separatedly
in the shell.
BUG:373880
Test Plan:
connection and disconnecting an external screen to the laptop
both in the case of internal screen enabled or disabled
Reviewers: davidedmundson, #plasma
Reviewed By: davidedmundson, #plasma
Subscribers: davidedmundson, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D3777
Summary:
in a corner case that is used a lot, the internal laptop screen
gets automatically disabled when an external screen is connected.
the only QScreen* available from the QGuiApp gets recycled for the
new screen and there is no signal this switch occurred.
To work around this, as all the view get an expose event when this happen,
monitor the rename of the desktopview's qscreen and manage this separatedly
in the shell.
BUG:373880
Test Plan:
connection and disconnecting an external screen to the laptop
both in the case of internal screen enabled or disabled
Reviewers: davidedmundson, #plasma
Reviewed By: davidedmundson, #plasma
Subscribers: davidedmundson, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D3777
Summary:
It makes no sense to modify the focus of containment within it's
FocusScope, and activeFocus will be set correctly by code in
QQuickWindow. Especially as it doesn't set it back.
The only way this would make any sense is if someone in Desktop is
incorrectly using "focus" when they mean to use "activeFocus". This code
was introduced to fix a bug in the toolbox (331971) where someone was
making the mistake above.
That toolbox code has been subsequently fixed properly, leaving this as
dead code.
Test Plan:
Toolbox still closes appropriately.
Everything else still seems the same
Reviewers: #plasma, broulik
Reviewed By: #plasma, broulik
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D2446
Summary:
We used to append them, but that didn't work well and was crashing plasmashell
on fresh start.
A default desktop would be created alongside with the one provided by the
layout instead of replacing it.
If a layout wants to provide an additional screen for a desktop in the secondary
screen, it should specify the screen.
Test Plan:
Now the plasmashell tests pass. In fact I noticed it was broken due to an e-mail
Jonathan sent me that the test on neon was timing out. The test in neon will
freeze when the test crashes. Probably something to look into.
It can be reproduced by running:
```
xvfb-run -a --server-args="-screen 0 1024x768x24" dbus-launch --exit-with-session <exec>
```
Where `exec` is the process we need to run.
Now the test passes.
It's a crash that I had reproduced locally in the past. I can't now.
Reviewers: #plasma, mart
Reviewed By: mart
Subscribers: sitter, jriddell, plasma-devel, #neon
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D2117
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
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
Summary:
Since Qt 5.5 there is a dedicated event when a PlatformSurface gets
created. This allows us to know when we need to setup the Wayland
integration.
Reviewers: mart
Subscribers: plasma-devel
Differential Revision: https://phabricator.kde.org/D819
We were rejecting all key presses that had modifier in it, this included upper-case letters because of Shift being pressed.
Accept keys where *only* the Shift modifier is pressed, too.
BUG: 353959
FIXED-IN: 5.6.0
Differential Revision: https://phabricator.kde.org/D902
Prevents them from being hidden by show desktop.
They are for configuring things on the desktop, so this makes sense. Also allows to configure
an applet when it has been dropped from Widget Explorer which enters show desktop mode.
REVIEW: 126947
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
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
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
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
This fixes ksmserver not being able to logout or shutdown correctly as
it was unable to kill Plasma.
Tests showed that pressing alt+f4 no longer kills the window anyway
(possibly a change in kwin?)
BUG: 338360
REVIEW: 121004
The hack we used to have is not working anymore because they changed how
Qt works (And it was a hack after all).
On the other hand, on Qt 5.4 we can use the API I added for this purpose,
so listen to screen removed before the window is shuffled somewhere else
so we can cleanly remove the view.
Reviewed by DJ Edmundson