--cleanup PreviewButton in order to work and
paint nicely with Plasma 5.23 and KDecoration2 >=5.23
all new damaged() signal.
--Upstream fixes to decoration in order to paint
their buttons properly when these buttons are
considered StandAlone()
--TAKE NOTE THIS NEEDS UPTODATE Breeze and Oxygen
Decorations in order for NICE TO HAVE PAINTING
--decorations may have not been updated yet in order
to not register the "button" plugin as proposed
in KDecoration2>=5.23. For this reason when a button
is not created with the new approach, the old button
creation method is used and a warning is appearing
in order for the decoration creators to update
their implementation.
--upcoming version 0.10 will be compatible only
with Plasma >= 5.23. This patch updates the implementation
in order to support kdecoration2 updated implementation that
was introduced in Plasma 5.23
--first implementation to provide monochrome
icons for aurorae themes through Latte infrastructure.
Designers have to update their aurorae rc theme file in order
to add in General group the property MonochromeIconsPrefix.
examples:
//monochrome icons are already monochromatic capable, designer can add
MonochromeIconsPrefix=*
//monochrome icons are starting with, mono-close.svg, designer can add
MonochromeIconsPrefix=mono
--take into accound the window specific abilities,
closable, minimizable, maximizable etc... in order
to draw correctly which buttons are shown. This
feature needs at least Latte >= 0.9.8 and for Plasma
should work immediately.
--Plasma::Themes are using Colors:Window group
from color schemes for their normal palette. That
change should improve vastly the "Colors:Plasma Theme"
option for this applet.
--when the applet in inside a Latte panel
then the maximum thickness applied should be
the Items Size in order to provide uniformity
with neighbour applets
--make default items size to 100
--each time a decoration is created an <inotify>
watcher is also created; not from applet side but
from the decoration side. This patch recreates
a decoration only when it is really needed and
that means when the decoration is different than
the previous one.
--when in Latte activeness of the maximized window
is not important and can be ignored. This way when
the last active window in a screen is maximized but
is not active, buttons could still be shown
--by using a shared decoration we can now send
all mouse events to the decoration first and
the decoration can choose the buttons that need
to get the signal and be updated
--a new class has been introduced called PreviewSharedDecoration
and is the common decoration that is used for all PreviewButtons.
This way more resources are gained and at the same time the buttons
can communicate with each other through the decoration if it
is needed from decoration perspective. This was not straight forward
as the coordinates between KDecoration2::Button(s) and their
QML parts must be translated in a different way in order to work
correctly.
--the thickPadding parameter should be
divided by factor 2 because for all the
rest calculations it is multiplied by factor 2
already. So thickPadding is identifying
separately the bottom and top paddings.
--breeze and oxygen themes break for some cases
for active/inactive state and color schemes
changes. Tag them in the code in order for the
buttons recreation to not be executed at all
cases.
--when a user had selected a plugin/theme in the
past and this theme was uninstalled there could
be a crash when trying to access it
--update buttons when the current scheme changed
--if the user has chosen visibility mode "ActiveMaximized"
and the last maximized window was closed the buttons were
still shown even though they should not
--the buttons were shown even when there was NO active
window in the current screen and the user has chosen
"Active window/Maximized" and enabled the screens filtering
at the same time
--cmake takes over to handle the different api
of kdecoration 5.12 with kdecoration>=5.13.
This way we now have one version to rule all
plasma different versions
--editMode painting in Latte has been disabled
because it is an experimental feature that is
not supported from many applets yet. In the future
that could changed when Latte will give the user
the freedom to set per-applet the painting enabler
--the setActive of the c++ decoration themes
returns an error when it is changed:
"QPropertyAnimation::setPropertyName: you can't change the property name of a running animation"
this error is probably relevant with wrong
buttons painting from Latte palette in some cases
--the old implementation was not providing proper
spacing for Aurorae themes. The new implementation
follows the c++ themes way of handling this and as
such spacing is improved a lot.
--because Latte identification in v0.8 is broken
we give to the users a SystemDecide options which
is the PartialChecked state of the checkbox in the
settings window