--use only input events in order to identify the area
from which a window accepts input and also remove almost
every mask-qml code handling
--by reducing mask usage to minimum we fix also the
BLACKLINE bug under X11
-- The new approach reduces mask area calls to
barely minimum. Input mask is used instead to
specify the area for which we accept input.
-- The new approach solves also the BLACKLINE issue
when hovering the view at startup. This is because
at all times the full window area is drawn.
--Move in a simpler layouts approach.
--Single Layout mode loads ONLY ONE Layout for ALL Activities
--Multiple Layouts mode loads any combination of Layouts based
on the following settings:
-- OnAllActivities
-- ForFreeActivities
-- SpecificActivities
--PlasmaExtended::Theme produces QRegions based on corners
radius that can be consumed afterwards from Effects calculations
in order to provide correct QRegions for custom backgrounds
produced from custom background radius option
--onSomethingChanged syntax is preferred for all
slots that are triggered from somethingChanged signals
--doThis syntax is preferred for generic slots that
are triggered from various different codepaths
--when unloading layouts applets are deleted
and subsequently all the heuristics for identifying
expanded applets are removed. In such case
there were rare cases that applet()->id() was
trying to be accessed and that was subsequently
creating crashes because applet did not exist
anymore. AppletQuickItems probably are deleted
after applet has already been destroyed.
--the new approach is much more memory efficient
as the same indicator config ui is used for ALL
views and anything related to config uis is now
handled by the manager instead of each diffent
view on its own
--curent view indicator config ui is not deleted
when the PrimaryConfigView changes its parent view.
For each view there is one indicator config ui
that is kept available to be shown when appropriate.
This way we avoid unnecessary recreations of indicator
config uis when the user cycles between different views
settings.
--inEditMode is now updated directly from
containment()->inUserConfiguring()
--add again hiding blockers when View gets
into edit mode. That was lost during last commits
because it was part of Visual qml code that
has been moved to another window.
--floating gap window is now activated independently of
kwin edges supports and only when really needed.
SidebarAutoHide visibility mode has been adjusted in order
to work nicely with floating gap window helper
--when the user has triggered its showing. It must be
given enough time for the user to observed the sidebar
contents before checking out if the sidebar must hide.
--as it appears in wayland the struts calculations must be
applied for exact screen_edge coordinates and use only the
view shown thickness. During the process floating panels
struts were not accurate at all cases and as such they
were fixed also for x11.
--when View::Visibility::mustBeShown signal is
triggered then the Views should always be shown
even when KWin has hide it with no real reason
--force appling activities to ALL View related windows
when changing current Activity. This way we make
sure that when KWin makes faulty assignments,
Latte is coming to the rescue.
--The new implementation for snapping needed to remove
the touching view edge from touching algorithm. The
windows trakers now provide two separate values for each
touching.
----First value is for regular window touches for which
their window geometry intersects with view published
absoluteGeometry
----Second value is for windows that are touching
view edge without intersecting with view geometry
--when a behaveAsPlasmaPanel is sliding-in and View
is in editMode, it is a good idea to calle
Positioner::syncGeometry() in order to validate
the View window geometry in edit mode. The problematic
case example was a right SideBar Panel that when
was hidden and the user was using Meta+A to
show its settings, the View did not change its
geometry properly in the end.
--View::Effects now provides in API in order for
elements to publish regions that need to be added
or removed from View::mask(). A good example for this
is View Config windows that must remove a rectangle
for their bottom edge in order for users to have
fully access to their action buttons at the bottom.
--when hidden configuration windows are deleted memory
consumption is improved and provides much lower values
--when hidden configuration windows are not deleted
memory consumption increases but their responsiveness
for hiding/showing is instantly
--really handy and beautiful in order to confirm the
calculations that are valid. Already a bug was found
for ParabolicEffect. There is 1px difference between
hovering Tasks and Applets
--View recreation path was broken from new implementation
for Latte::Interfaces that pass objects to containment
interface. This is now fixed and Interfaces::View object is updated
and broadcasted correctly when changed
--when GtkFrameExtents are zeroed for behaveAsPlasmaPanels
then it is better to recreate the view to avoid freezes and
hidings of the view because of compositor strange behavior
--use a single slot when View triggers its workarounds
for the kwin issue that kwin hides panels when an activity
stops. In such case the view shadows are also redrawn.
--there are cases that the Blurred area svg returns
a NULL mask() even though it should not. In such
cases the workaround takes place and for the workaround
the calculations have already taken place and we
do not need to reapply them because in that case
the blurred area moves out of the window.