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
Summary:
This allows us to run the plasma-tests repo on your system without it
destroying all your real activities. Even though one run tests in a
nested
dbus sessions, kactivities will still load and meddle with your real
database
at the same time as the real daemon is. That gets messy and broken.
It also allows us to remove a hack in the plasma-tests script.
Test Plan:
Ran normal plasma, everything is the same.
Ran plasma-tests everything there now works properly
Reviewers: #plasma, hein
Reviewed By: #plasma, hein
Subscribers: apol, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D6133
if any kscreen related activities occurred
during startup, the panel wouldn't be visible
yet, and this would assert. This often happens
when a screen gets disabled at startup
CCBUG:377280
if any kscreen related activities occurred
during startup, the panel wouldn't be visible
yet, and this would assert. This often happens
when a screen gets disabled at startup
CCBUG:377280
Summary:
this is for the following setup:
the primary screen is at position 0,0 and gets disconnected.
the other screen will be moved at 0,0 and becomes primary
the screen is reconnected, the events arrive in the followin order:
1) a new screen gets added, at 0,0 position
(not primary yet, it may be markedredundant)
2) the screen becomes primary, both screens still at 0,0
3) the old screen gets moved out of the way
in the end result none of the two need to be redundant.
adding the old one in the redundant list, will cause reconsideroutputs
to consider it and create a view for it.
BUG: 377808
Test Plan:
added and removed sevaral times a primary screen at 0,0
also tried other positions of screens to check it doesn't make regressions
Reviewers: #plasma, sebas, subdiff, broulik
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D5323
Summary:
this is for the following setup:
the primary screen is at position 0,0 and gets disconnected.
the other screen will be moved at 0,0 and becomes primary
the screen is reconnected, the events arrive in the followin order:
1) a new screen gets added, at 0,0 position
(not primary yet, it may be markedredundant)
2) the screen becomes primary, both screens still at 0,0
3) the old screen gets moved out of the way
in the end result none of the two need to be redundant.
adding the old one in the redundant list, will cause reconsideroutputs
to consider it and create a view for it.
Test Plan: added and removed sevaral times a primary screen at 0,0
Reviewers: #plasma, broulik, sebas
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D5323
Summary:
add global immutability/setImmutability in scripting
there was a locked property in containment, but
didn't make much sense as the lock/unlock state is
always global. a global function would be better.
containment.locked may also be changed to lock the corona instead
(doesn't seem reliable now) but should probably be deprecated.
Test Plan:
correctly locked nd unlocked widgets from the console.
i'm not sure wether allowing systemimmutable as is dangerous and not
easily reversible, but does have an use for first
time setup of kiosk environments
Reviewers: #plasma, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: davidedmundson, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D5009
if applets react to it it can cause a crash, because the corona
may not be valid anymore, and we don't want to relayout
things anyways when tearing down
reviewed-by: kbroulik
Summary:
connect to Plasma::Corona::availableScreenRectChanged
instead of using kscreen, this way we should be more sure
that signal is emitted when it's safe to call
corona()->availableScreenRect() as the change of rect
may happen after a screen removal, so may mean
accessing a desktop view while being deleted
BUG:377298
Test Plan:
notifications still pop up in the proper place,
couldn't reproduce the crash neither before nor after tough
Reviewers: #plasma, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D4991
The panel length might not actually change depending on minimum and maximum size constraints
and this is the wrong place to do this in the first place.
Differential Revision: https://phabricator.kde.org/D4590
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
Use iterators and their key() and value() methods.
This codepath is hit 200+ times on plasmashell startup for me
Before: 420,000 ns
After: 200,000 ns
Differential Revision: https://phabricator.kde.org/D4349