Summary: BUG: 390499
Test Plan:
See callgrind in bug report
Added debug in the relevant section, unplugged a monitor. Saw my output
Reviewers: #plasma, broulik
Subscribers: jtamate, mart, broulik, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D10538
Summary: All things we need exists in the top level CMakeLists
Test Plan: Compiles
Reviewers: #plasma, bshah
Reviewed By: #plasma, bshah
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D10544
ECM, when requiring ECM >=5.38, sets CMAKE_*_OUTPUT_DIRECTORY, so the
tests executables are no longer generated in the current binary dir.
Calling add_test() with the signature
add_test(<name> <command> [...])
will not result in any further processing of the <command> argument,
it will be executed as is. Using instead
add_test(NAME <name> COMMAND <command> [...])
will result in <command> getting some handling, cmp. CMake docs:
"If <command> specifies an executable target (created by add_executable())
it will automatically be replaced by the location of the executable
created at build time."
Which is what is needed now here (and also used in ecm_add_test).
Summary:
To test if the panel is under the cursor we used:
if (geometry().contains(QCursor::pos(screenToFollow()))) {
Unsurprisingly in wayland we don't know the cursor position once it's
left our window. Behaviour seems to be undefined.
We were already using enter and leave events to start the autohide
timer, so we may as well rely on that for tracking state too.
BUG: 377838
Test Plan:
Tested mouse in, mouse out
Tested mouse in and waiting and panel stayed open
Tested opening wifi applet and closing it
That will trigger the restoreAutoHide method as an applet status changed
The panel stayed open because the mouse was on it.
Reviewers: #plasma, mart
Reviewed By: #plasma, mart
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D10101
This fixes opening panel controller while an applet config dialog was open.
It would find that we want to show config for a panel but find a config is already open, so it would just close it,
even though it was not the panel controller (which should be toggleable) but another applet config.
While at it restructure if statements a bit.
Differential Revision: https://phabricator.kde.org/D9799
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:
Plasmashell literally never checks the X screen, but we expose it in
this scripting system.
This patch Hardcodes it to the values you'd have on a normal system.
The existing screenCount is unchanged and will still work.
Test Plan: compiles
Reviewers: #plasma, mart
Reviewed By: #plasma, mart
Subscribers: apol, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D9174
Summary:
in the wallpaper config dialog
there was custom code duplicating listing of kpackage, just wrong
(if the same wallpaper was installed in more than one place, the
config file qml was taken from the one with least priority)
Test Plan:
wallpaper dialog works again with qresource based packages
also they load the proper config ui qml file when more than one
instance of plasmashell is installed
Reviewers: #plasma, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: davidedmundson, broulik, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D9237
Summary:
Setting a window icon is surprisingly costly and a decent chunk of
startup time. The shell doesn't need one. The only place I could
find where this icon is visible is in the KSysguard process list :).
Some people may be reminded of this rejected request:
https://git.reviewboard.kde.org/r/128484/
But that's Plasma::Dialog in plasma-framework, which (currently)
still sets an icon. This is about the shell.
Reviewers: #plasma, davidedmundson, mart
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D9196
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
Summary: This is the implementation of the new Plasma Corona API, as described in https://phabricator.kde.org/D8566
Reviewers: #plasma, ervin, dvratil, mlaurent, hein, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: mwolff, apol, mart, davidedmundson, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D8567
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
This allows the config UI to know when to enable the Apply button.
Currently we only do that when the shortcut or actions themselves change but not their configuration.
Differential Revision: https://phabricator.kde.org/D6443
m_windows keeps track of which window has which borders so it can update them when e.g. theme changes.
Unfortunately, it was never updated after the window was initially added.
Differential Revision: https://phabricator.kde.org/D7505
Summary:
The directory containing the main application (read through argv[0]) is
by default added to the list of paths containing libraries.
This causes various methods to iterate through all entries of the plasmashell
install location, usually /usr/bin.
By explicitly removing the path, those unnecessary lookups can be avoided,
resulting in around 100ms quicker startup on a system with 4000 entries in
/usr/bin.
Test Plan:
Ran plasmashell with and without this fix, no changes except for a slightly
quicker startup and much less strace noise.
Reviewers: #plasma
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D7255
Summary:
KWindowSystem::platform() cannot be used before QApplication is
constructed.
QCoreApplication::setAttribute needs to be called before QApplication is
constructed.
We need a different method. I've used an explicit new env variable so
that some users can also opt in to use this when on X.
Test Plan:
Logged in.
Plasma panels all work. Look to be native resolution.
Reviewers: #plasma, mart
Reviewed By: #plasma, mart
Subscribers: mart, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D7200
Summary:
I've done this only when on Wayland because:
On X, our own scaling to font generally works well.
There are bugs on older Qt, especially when it comes to fractional
scaling, and we can't support per screen scales anyway.
There's advantages to disabling, and (other than small context menu
icons) few advantages in enabling
On wayland, it's different. Everything is simpler as all co-ordinates
are in the same co-ordinate system
we don't have fractional scaling on the client so don't hit most the
remaining bugs and
even if we don't use Qt scaling the compositor will try to scale us
anyway so we have no choice
CCBUG: 356446
Test Plan:
Had this for about a week on my laptop.
Haven't noticed a single problem.
Reviewers: #plasma, mart
Reviewed By: #plasma, mart
Subscribers: mart, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D7188
Summary:
This is meant as a more generic fix for the autohide panels, actually
looking to see what transient windows we have open.
The problem with the current fixes (D6555) being posted is that we
potentially get attentionStatus in a corrupt status as we cache the
value but it might change externally whilst that window is open.
Also saves duplicating code in a bunch of places.
Test Plan:
Set autohide
Opened a context menu in task manager didn't autohide, till I closed it
Closing menu whilst keeping mouse in the panel doesn't auto hide it
until we move out after.
Hovering over TM tooltip keeps autohide from closing (another fix)
BUG: 352459
BUG: 347855
BUG: 351823
Reviewers: #plasma, broulik
Reviewed By: #plasma, broulik
Subscribers: broulik, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D6577
Summary:
There is (a very appreciated) a description of why loading the
alternatives dialog was queued.
This causes issues for autohide as it gives us a time when the menu is
closed and we don't have anything else inhibiting autohide.
The comment doesn't seem to hold true with the latest frameworks which has
some mouse releasing code on the menu itself.
Test Plan: Clicked a lot. Clicks worked first time.
Reviewers: #plasma
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D6647
Summary: Replace QObject::sender() and tracking objects in a list with a simple lambda.
Test Plan: Opened and closed dialog.
Reviewers: #plasma, mart
Reviewed By: #plasma, mart
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D6615
Summary:
with Qt 5.9, the panel controller can't get focus, so
it can't be dismissed by clicking anywhere, (couldn't
figure out what was the commit that caused the regression)
removing the manual setting of flags seems to fix it,
while the behavior seems unaltered with Qt 5.7 and 5.8
Test Plan: tested on machines with Qt 5.7, 5.8 and 5.9 installed
Reviewers: #plasma, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: mvourlakos, davidedmundson, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D6403
Test Plan:
Opened config window. Saw icons
Checked autostart still worked with the Hidden=true entry
Reviewers: #plasma, graesslin
Reviewed By: #plasma, graesslin
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D6400
Summary:
Let's also move the applet pointer to right before it's used and
remove duplicated declarations.
Reviewers: #plasma, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: davidedmundson, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D6424