Summary:
Requests several KWin-specific interfaces to be used on KRunner and
Plasma Shell.
Test Plan: See D22571
Reviewers: #plasma, #kwin, davidedmundson
Reviewed By: #plasma, #kwin, davidedmundson
Subscribers: davidedmundson, zzag, mvourlakos, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D22589
Summary:
support args in applet creation with an optional argument to
containment::addWidget
scripts not using it will continue to work as before
Test Plan:
arguments get understood byt the created applet
applets can still be created without arguments
Reviewers: #plasma, broulik
Reviewed By: #plasma, broulik
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D22652
Summary:
this was implemented using a nested loop, which is simply not viable
because nested looping may work on inconsistent object states and cause
crashes all over the place. furthermore sleeping probably has no real use
case as there isn't anything you could be sleeping for
prevent any future problems by making the API method do nothing and instead
print a warning about it being deprecated.
should be removed when moving over to kf6
Test Plan: prints warning when sleeping
Reviewers: davidedmundson, mart
Reviewed By: davidedmundson
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D22070
Summary:
the sleep is implemented with a nested event loop which may result in
segfaults when something in the new loop stack accesses objects from the
original loop stack that are presently in a bad state because they were
not meant to be accessed (and only can because of the nesting).
to aid in debugging let's leave a trace of the fact that sleep was used
when in fact, using sleep is super risky.
Test Plan: warning gets printed when sleeping
Reviewers: mart
Reviewed By: mart
Subscribers: davidedmundson, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D21895
Register notification and job tracker services with "allow replacement" flag if not plasmashell,
so when it eventually comes up, it can claim the service and then cling on to it.
BUG: 408250
FIXED-IN: 5.16.2
Differential Revision: https://phabricator.kde.org/D22017
Summary:
With Plasma dialogs & tooltips the mask is only set on the widget itself
if compositing is off. Instead is the mask explicitly passed for the
KWindowEffects.
The recent changes to fix the blurbehind & contrast mask with panels
instead turned to always set the mask on the widget. For some reason
yet to be understood this can sometimes result in an offset by a pixel
between the mask used for painting and the mask used for the window effects.
Aligning the mask setting code with the one for dialogs & tooltips makes
the symptom go away for now, and also delivers consistency.
BBUG: 406380
FIXED-IN: 5.16.1
Test Plan:
Using different themes, including Adapta & Arc Dark, a gap can no longer
been seen. Only with compositing turned off, which is old behaviour due to
the real bug yet to understand completly.
Resizing panels or changing screen resolution also works without breaking
rendering or panel contents interaction.
Reviewers: #plasma, hein
Reviewed By: #plasma, hein
Subscribers: hein, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D21803
Summary:
The macro is on its way to getting deprecated, so we better start
adopting the suggested alternative just as well.
Test Plan: plasmashell runs fine
Reviewers: #plasma, ngraham
Reviewed By: ngraham
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D21493
Summary:
If the desktops are already visible, there's no much need to hold on the KSplash. Panels should be ellegantly displayed when they're ready.
As discussed in T10958.
Test Plan:
Made sure that it gets emitted at the right time.
Timing-wise, my system takes about 1s to show the DesktopView and 2s to show the PanelView (I have 1 panel)
Reviewers: #plasma, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: broulik, davidedmundson, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D21494
Summary: Put load in queue of the event loop to wait for the whole set of containments to have been deleteLater(), as some like FolderView operate on singletons which can cause inconsistent states
Test Plan:
now switching look and feel between 2 themes that use both FolderView
as desktop containment, the icons are still there
Reviewers: #plasma, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D21513
during l&f switch, use destroy() which does a proper cleanup
and gives applets time to react to destroyedChanged, so we're sure they
properly cleaned up their states.
This among other things makes the in-app menubar work again when the
user switches from a style with a global menu bar to one without
Summary:
the culript seems the Qt::WindowDoesNotAcceptFocus flag,
removing it makes it possible to have back working text fields in the
panel
Test Plan: works with an ad-hoc applet, notes applet needs fixing
Reviewers: #plasma, #kwin, davidedmundson
Reviewed By: #plasma, #kwin, davidedmundson
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D21319
Summary:
The actual mask is now queried from the panel, there is no more need
for this.
Reviewers: #plasma, mart
Reviewed By: #plasma, mart
Subscribers: davidedmundson, mvourlakos, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D21013
Summary:
The mask of a panel depends on things like borders set or window size,
but nothing else on it. So it should be updated as last in the queue of
things to update.
There might be still state changes not properly propagated, but this is
a move in the more expected direction.
Reviewers: #plasma, broulik
Reviewed By: #plasma, broulik
Subscribers: apol, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D21012
Summary:
Plasma themes might define non-full-rect shapes for panels (e.g. round
borders for panels not filling the whole width/height).
The old code tells the window manager to blur the full rect of a panel
window, resulting in unwanted artifacts around the panel shape for
non-full-rect themed panels.
With the Panel.qml item of the desktop packages exposing some optional
"panelMask" property now, we can query for the shape and only use the
painted area when telling the window manager where to blur behind or
changing the background contrast.
This also follows the logic as already applied for dialogs or other window
elements like tooltips which are rendered using a Plasma theme.
Test Plan:
The Oxygen Plasma theme no longer has blurry corners on panel edges.
Also still works as before when using non-composing window manager.
Reviewers: #plasma, mart
Reviewed By: #plasma, mart
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D20204
Summary:
Older Plasma themes, which are still offered also for current Plasma 5 e.g.
from store.kde.org, are missing out "shadow-*" elements for
"widgets/panel-background". The old code of the PanelShadows class does not
handle that case though, and as result for X11 sets a _KDE_NET_WM_SHADOW
property with "0" for most of the pixmaps due to them being an empty pixmap
in at least one dimension (except for the emtpy corner pixmap which is
always 1,1). The resulting behaviour with current KWin (X11) is this:
* when starting a Plasma shell with a theme without panel shadow elements,
KWin does not show shadows
* when switching from a theme with shadow elements to one without, the
shadow of the previous theme is continued to be used.
Reason is that KWin when parsing that property cancels the parsing when it
comes across a "0"/null id for a shadow pixmap, without further error
handling, so either does not create a shadow or keeps the old.
This patch catches the case of themes without any panel shadow elements and
only sets the _KDE_NET_WM_SHADOW property or wayland shadow if there are
shadows, otherwise removes them if needed.
Test Plan:
Switch between Plasma themes with and without separate shadow elements
defined (e.g. Breeze <-> Fluffy Bunny).
Reviewers: #plasma, mart
Reviewed By: #plasma, mart
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D20051
Summary:
load() is called a few times and different states. After the change I
also get the warning on a regular load.
This patch returns early whilst we're in the loading state, but still
prints the warning should kactivitymanagerd fail.
Reviewers: #plasma, mart
Reviewed By: #plasma, mart
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D18922
I got "#define HAVE_X11 TRUE" and errors because of that where #if was
used.
This also obeys the logic that HAVE_X11 is set (in the toplevel
CMakeLists.txt) not only when X11_FOUND but also when XCB is found.
Summary:
Ran into this gotcha the other day, and it was impossible to resolve
without code debugging.
Reviewers: #plasma, bshah
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D18493
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: makes sure the flag is set on time
Test Plan: can't get the panelcontroller in the taskbar anymore
Reviewers: #plasma, hein, broulik
Reviewed By: #plasma, hein, broulik
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D18186