--issue #852, when directRendering is activated
some of the tasks could be in restoreAnimation,
in such case they stop their animation are moved
to directRendering mode
--issue #852, improve how the two states of zoom-in
and directRendering are indetified and triggered.
The initialization of hovering indexes now is
trigerred only for window mouse out events.
--in order to go faster to directRenderMode in some
cases, the following criteria was added. If the zoomScale
of a task is greater than 1 and the mouse enters that task
then directRendering is enabled.
--consider reverse Lines and show glow case in order
to add this in the thickness calculations
--consider the applets shadows when shrink thickness
is enabled
the dynamic background feature is enhanced and
becomes smarter. It understands snapped windows, windows
that touch the panel edge etc. The criteria in
order for the background to become solid are:
- any active window that is touching the panel
edge (that includes krunner)
- any inactive window that is snapped and touches
the panel edge (concerning its geometry: quarter-snapped or half-snapped)
- maximized windows
- an inactive window but keepAbove is touching
the panel edge (this catches also the yakuake case)
- panel popups
--there were cases that window previews/tasks context menu/
title tooltips were shown at the same time. This patch fixes this
by adding timers to catch these case and show the above on
priority. The priority used is tasks context menu/window
previews/title tooltips
--the inAttention animation is being played by a
separate Loader, with this patch we hide the underground
original indicator in case it creates a visual
breakage in some cases
--try to give more interaction to the user. When an
applet is clicked at its hidden spacers or the space
reserved for its active indicator then Latte sends
a signal to expand it. Unfortunately I havent found
a way to active other applets in such case e.g. the
icon-only applets
--hide internal separators when overlap and show
only one
--hide internal separators at start or end of the
plasmoid, the user can us separator applet in those
places
--add safety array checkes in order to avoid any
crashes from accessing out-of-arrays elements
--disable direct rendering when a title tooltip
becomes hidden and the mouse isnt in the dock.
This fixes an issue when the user enters the dock
and the parabolic animation wasnt playing correctly in
some cases
--do not show a title tooltip if the dock !containsMouse.
This way some tooltips that were still shown when the
mouse wasnt inside the dock is fixed.
--following issue from #730 more qml code
was found that wasnt releasing connect signals
properly. That could create crashes because
already deleted qml objects could receive such
signals. That was observed after qt>=5.9.2
--this works similar with transparency with no-maximized
windows feature but on reverse. e.g. transparency for
non-maximized windows and solidness for maximized ones
--opacity to 1 when applet is active
--when the user uses a semi transparent panel for
un-maximized active windows and the user activates
a pop up for an applet a better visual effect is the
panel to not have any transparency
--improve translation strings and options order
--the provided separator applet is not animated
in Latte based on the parabolic effect. These
applets are just sliding on the length axis so
the lock button doesnt provide any functionality
at all.
--The internal separator can be hidden when it is
found at the edges of Tasks Plasmoid, it creates a
more pleasant result. If the user wants separators at
the edges can always use the Separator plasmoid from
audoban. This fix would fix also the overlap
of internal sepator with external applet separator.
--at all cases and not just those that
systray length is greater than the set applet size.
There were cases that the systray had very few
applets in it and thus is was animated
--when the dock is hidden or in animation no mouse
wheel actions are accepted
--laucher: only the up action is accepted in order to
activate that launcher
--window: up action shows the window, if it is shown
nothing happens,
down actions, minimizes the window, it is is already
minimized nothing happens
--group: up/down to cycle through the windows
-- disable always and forcefully the automatic icon
size for plasma task managers and make sure to restore
to normal icon size when only such managers are present
--there are cases that the panel shadow should be forced
shown even though the user has chosen not to. Such case
is when an applet is expanded and the user has
zoom factor:1, panel background:100%, which is much
similar with a plasma panel configuration
--add functionality for layoutManager
--add widgets action and alternative layout action to
layoutManager
--remove more functionality that belongs to globalSettings
--improve more the parabolic animation and
fix an issue that was based on the time window
between smooth animation and directRender when
the mouse activates the parabolic effect in the
begin.
--we now support through our discovering mechanisms
a properly identification for kicker and simplemenu
applets. This way changing their icons work correctly
and of course the parabolic effect
--this fixes the Tasks plasmoid thickness and
improves a small breakage in the parabolic effect.
The Tasks thickness is going to maximum when there
is a hoveredInded in plasmoid or in containment.
--the previous fix, fixes also a small breakage in
the parabolic effect animation. The breakage was
appearing when going from
applet->applet separator->task and directRender is
enabled
--all the functionality concerning the internal separator
is moved completely into the plasmoid. Now the add/remove
of the internal separator can be found through the Tasks
contextmenu as long as we are in editMode (that is showing
the configuration window)
--support properly applet separators. This is the
first part, in the future the margins for them
should be updated correctly and the edge cases,
for example when the applet separator is next to
tasks plasmoid
--the parabolicManager is informed about the applet
ids for hidden applets and separators. This way the
manager can process the signals for parabolic effect
much better and correctly
--this is finally used properly through the
ParabolicManagers new architecture. Any old
problems concerning applets that didnt clearing
their zoom should be fixed totally now!!
--all messages concerning parabolic effect are calculated
and send through the ParabolicManager. This will help
a lot in maintainance and in many cases in the future
such as, separators, hidden applets and clearing zoom
properly
-use the old code and add it in AppletIdentifier in order
to discover applets that provide IconItems and substitute
their panel behavior with Latte experience
--the internal separator codebase has been simplified
a lot and uses a new approach that provides a smoother
parabolic effect. This is part1 concerning improve separators,
in part2 applets separator will to try to be improved
--expose the functionality through the configuration
window. The user can choose no latte type internal
active applets indicators, only show to latte internal
applets and show at all applets
--improve applets shadows, now the shadows used
are using the backgroundColor when a transparent
panel is forced
--identify better when shadows should be drawn
-- the user can choose this behavior from the Tweaks page,
the panel background in shown only when there is maximized
window and it is fully transparent otherwise
--there are plasma widgets that break the Latte
experience concerning the parabolic effect. We fix
this by providing above them our own Latte solution
and by hiding the applets appearance. At the same
time we make sure that a folder widget is not increasing
its size above 96px. for which its appearance goes to
FullRepresentation
--applets such as folder view and icon where
breaking the animation for icon size < 64px.
This commit uses the heuristic algorithm from
AppletItem in order to discover such plasmoids
and afterwards it fakes a Latte.IconItem over
the PlasmaCore.IconItem
--disable all Math.round(...) from parabolic
effect calculations because this was enough in order
to miss just one pixel that was able to create
a small trebbling
--use a small duration of 20ms for the
directRenderAnimationTime in order to add a bit
more smoothness in the parabolic animation
when directRender is activated
--drop the checkListHovered that was using an
heuristic algorithm to discover if the mouse is
still inside the window. In its place use
the dock.visibility.containsMouse
--use one single globalDirectRender flag from
containment in order for all dock elements to
investigate if they should use directRendering-
painting or play animations instead
--adding the internal separator made the things a little
more complicated. This commit improves the clearing
calculations in order to not conflict the messages
with each other and trying to restore all applets
and tasks that are not considered for the parabolic
effect.
--the applets now take into account the tasks
internal separator in order to provide beautiful
smooth parabolic animation when the internal separator
is at some of the Tasks edges
--durationTime that was used for the animations
was an integer. This was created extremely fast
animations for x1 and extremely slow animations
for x3. This fix changes that by setting the
durationTime in the qml side to real type. And
by that we are setting the following pragramatic
speeds which create a very good experience.
x1 = 1.65
x2 = 2
x3 = 2.35
the above can be updated a bit based on the user
feedback and experience
--this way the right click we always take into account
the visual appearance space that latte provides for it
and not the applets internal geometry. So now spacers
also are considered as applet area
-this patch provides the offset variable for
our qml side... The offset feature is not complete
the following are missing:
-expose offset at the dockview
-use offset in !compositing state
-update borders by taking into account the offset also
-update the automatic-positioning to take into account
the offset also
--based on a strande behavior when changing form
factors and not appearing correctly I found the
reason why this is happening... this fixes the
audoban separator wrong latte behavior and for
the widget also concerning of course when the
dock changes form factor
--this fix inlude also a fix of a binding loop
for the heading of launchers inside the AppletItem
--the user can alter this behavior from the tweaks
page. So the user can add launchers as plasma applets
by disabling the relevant choice in the tweaks
page.
--adding a plasmoid in taskmanager does not appear
an add cross
--trying to add launchers outside the taskmanager
appears a message over the taskmanager indicating
the real Launchers Area
--first all the code concerning exposeAltSession
is moved in it and in the future also the autostart
and currentSession can follow. This will improve
both dockview and configview
--icon margin is not set by the user,
this is why the hidden spacers must update
their size according to the user choice,
do not create to much empty space at the
edges
--when the dock was changing between form
factors the edge alignments must be tranlated
correctly. e.g. left and right must
become top and bottom accordingly
--improved all the visual and calculations
for !compositing. During the road also some
fixes introduced for the masking calculations
as the PanelBox exposes more of its settings
publicle to root and that way to
VisibilityManager
--relevant to #250,creates consistency for
hovering tasks and applets. The only concerns
is around the springanimation introduced in
plasma 5.10 but this will be checked later
how it can be supported properly
--algorithm that is searching for an IconItem
inside at the applet's code for 2 levels depth.
If it is found the this IconItem is used to
be activated and deactivated on entering and
exiting the applet.
--fix the plasmatube behavior. The clicking
animation from Latte was preventing clicking
signals to be caught exactly as the plasma frameworks
were expecting them.
--when dock is changing screens and dock is using
an automatic calculated icon size based on contents
the automatic icon size must be recalculated for the
new proportion icon size
--in order for a dock to be above KeepAbove
windows must contain flag BypassWindowManagerHint.
Unfortunately this flag breaks the experience with
AlwaysVisible state especially the struts and
snapping behavior. This patch recreates a
dockView when a mode is changed and an
update for the flags is needed.
--at the same time move the localGeometry to
dockView in order to trigger properly the
updateAbsGeometry when it is needed, on
window's geometry changes not only when there
is local geometry change
--when a dock is created through corona, the
addDock function reads the mode which is going
to be used and specifys this way the flags that
have to be set during docks creation
--this is especial useful for plasma themes with big
transparency. Latte can not support blur and background
contrast kwin effects for panel backgrounds that are drawn
inside its qml side.
--this a big fix for the painting mechanism.
Introduces a new direct rendering phase in
which no delays are happening on drawing.
This commit contains also the fixes in various
places in order for the new rendering to work
correctly