by using KStartupInfo::setNewStartupId it properly activateswithout
getting blocked by Kwin focus stealing protection also when remotely
invoked from dbus
DesktopView's constructor calls PlasmaQuick::ContainmentView(corona,
nullptr), to initialise the parent class. nullptr being the parent.
In this case it makes sense as QWindow's overload of setParent must be a
QWindow, but memory management has to happen somewhere.
Aggregate text for KRunner in DesktopView to prevent eating fast-typed characters.
CCBUG: 416145
partial solution: resolved for DesktopView, not resolved for running KRunner from shortcut
Test Plan:
When DesktopView is focused, typed characters show KRunner query.
All fast-typed characters should now appear correctly in KRunner window,
instead of only first typed character.
Currently updating the DesktopView geometry and emitting signals notifying of changes to screen geometry are connected independently to QScreen::geometryChanged(), while screenGeometry() as well as availableScreenRect() and availableScreenRegion() depend on the DesktopView geometry. The incorrect order of slots being called causes the task manager to behave incorrectly on screen configuration changes, displaying either no windows or windows from a wrong screen. This also affects the desktop pager widget when configured to show the current desktop only.
BUG: 373075
The desktop view isn't visible in the task bar, tabbox, and neither does it have a window decoration.
Differential Revision: https://phabricator.kde.org/D18430
Summary:
On X, this is entirely useless.There's a special code path in create for
windowType == Desktop and in ::setGeometry it doesn't seem to help/hinder.
It's not like we need WM_NORMAL_HINTS for a WM to resize us.
On wayland it's downright destructive.
On the second setGeometry call the QPA bounds the new geography to the
current min/max (from our previous screenGeometryChanged). But updating
the min/max doesn't update our geometry. End result is our screen is
off.
Test Plan:
Resized screen on Wayland. Wallpaper now filled exactly instead of being broken
Resized screen on Xcb. Wallpaper still filled the screen precisely
Reviewers: #plasma
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D13850
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