The order in which the underlying window and the shadow are destroyed is
undefined. In most cases, the shadow is destroyed after the window, but
in rare cases it may be vice versa, for example it's the case with popup
menus in Dolphin. If the shadow is destroyed before the window, then
the window will be shadowless when the compositor animates it.
The only way to guarantee that the shadow is destroyed after the window
is to create a parent-child relationship between two.
Given that the widget and the window have different lifetimes, we have
to be extra careful with keeping dangling pointers out of _shadows.
We would like to destroy a shadow after the decorated window has gotten
unmapped or destroyed. To do that, we install an event filter on the widget
and make the shadow a child of the underlying window.
Unfortunately, the underlying window and the widget have different life
times. To counter for that, we clean up _shadows after the shadow has
been destroyed. This turned out to be a bad idea because when someone
does qDeleteAll(_shadows), QMap iterators will become invalid.
Since KWindowShadow handles the case where it becomes orphaned gracefully,
we can make shadows children of widgets to work around the crash.
Still, it would be nice to call KWindowShadow::destroy() after the native
resources for the window have been destroyed.
Summary:
Unfortunately this wallpaper is very landscape-centric in design,
so it is not very mobile-friendly. This patch is an attempt at a
crop that will at least produce a better result than the automatic
crop.
Reviewers: #vdg, bshah
Reviewed By: bshah
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D29727
Summary:
This wallpaper was created by Sandra Smukaste for the Plasma 5.16 wallpaper competition:
https://forum.kde.org/viewtopic.php?f=312&t=160935
And decided upon for Plasma 5.19 in T12724#228410
For the first time, this patch also uses the wallpaper's real name in the UI instead of
"Next". Actual filenames are not adjusted, to ensure that the filenames don't change and
we don't need config changes. See T12705.
Closes T12724
Closes T12705
Test Plan:
1. Use existing "Next" wallpaper
2. Apply this patch, build, and install
3. Restart plasmashell
4. Ta-da: {F8286839}
Reviewers: #vdg, ndavis
Reviewed By: #vdg, ndavis
Subscribers: plasma-devel
Tags: #plasma
Maniphest Tasks: T12724, T12705
Differential Revision: https://phabricator.kde.org/D29449
Summary: When hovering a focused combobox the icon was in Selected state resulting in a wrong color.
Test Plan: Hover over a focused combobox that has an icon
Reviewers: broulik, #breeze, ndavis
Reviewed By: #breeze, ndavis
Subscribers: ndavis, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D28908
Summary:
Caused icons to be not longer recolored when changing the color scheme until an
application is started again
Test Plan: Change color scheme while having an application open, icons should change color correctly
Reviewers: #breeze, #plasma, ndavis
Reviewed By: #breeze, ndavis
Subscribers: ndavis, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D29012
Summary: Caused some icons not be colored correctly
Test Plan: Close KWrite with unsaved changes, all icons should be colored correctly
Reviewers: broulik, ngraham
Reviewed By: broulik, ngraham
Subscribers: ngraham, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D28830
Summary:
Some icons can be recolored. However if the titlebar color is different
compared to the normal color scheme, this can lead to bad contrast.
Test Plan:
Before:{F8201155} {F8201159}
After: {F8201139}{F8201144}
Reviewers: #plasma, #vdg, ngraham
Reviewed By: #vdg, ngraham
Subscribers: kossebau, ngraham, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D28330
Summary:
Our icons can be recolored. However there is a difference between custom colors
on widgets and icons. We will respect the palette but KIconLoader that creates
the icon pixmaps operates on an application wide palette basis. This can create
miscolored icons when a widget has a custom palette. A helper function is
introduced to load the pixmaps that switches the palette of the global
KIconLoader if necessary and resets it appropriately.
Test Plan:
Before:
{F8205856}
After:
{F8205857}
Reviewers: #breeze, ndavis, cblack, hpereiradacosta, mart
Reviewed By: cblack, mart
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D28433
Summary:
After a widget has been unregistered, a WinIdChange event may be sent.
If that happens, ShadowHelper is going to try to install a shadow for
the corresponding widget. Obviously, this is wrong.
Reviewers: #plasma, cblack
Reviewed By: cblack
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D28075
Summary: This fixes a small bug in the Breeze window decoration settings where clicking on 'Defaults' did nothing to change 'Draw a circle around close button' . This patch now causes 'Draw a circle around close button' to default correctly.
Reviewers: #breeze, hpereiradacosta
Reviewed By: hpereiradacosta
Subscribers: ngraham, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D28087