--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
--the internalSeparatorPos approach was removed
from the plasmoid. The next steps are:
1. ParabolicManagers to update their logic in order
to take into account multiple internal separators
2. To hide all consequent separators either as applets
all internal separators
--make the single separator old architecture to
work correctly with the new multiple internal
separators architecture. Many things need to be
updated in order for this to work but lets make
one step at a time.
--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
--trying to show all tasks in all states directly
when the environment is in !compositing
--block all animations (removals/showings) when
the environment is in !compositing
--add more animation phases in order to provide
a better experience for the inAttention bouncing
animation
--add visual debuggers for the spacers and padders
needed for the bouncing animation
--move the release of signals manual bindings for
tasks delegates from onRemove event of the delegate
at Component.onDestruction. The crash was happening
when the code path(onRemove event) wasnt occuring,
so the bindings werent released.
--a faulty check was using backgroundColor instead of
textColor for badges shown from global shortcuts indicators
--improve badges to understand the new url form of
plasma 5.11 launchers
--during assigning activities for a launcher
a window that had a launcher for the active
activity maybe doesnt have any more when it is removed.
in this cases the removal animation should be
played
--when two or more consequently launchers were bouncing
their animation was broken because they were changing
places. This patch catches these cases and provides
a proper way to show these animations.
--when a launcher belonged at all activities and
the user was pinning at an another explicit activity
that wasnt the current one the removal animation
wasnt played correctly
--enable task margins for neighbour separator
when the internal separator is hidden but there
is an applet separator at the edges and the task
is found two steps far from the edge e.g.
pos=1 or pos=tasksCount-2
--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.
--during removing a TaskDelegate the window is destroyed
in some cases and the icon provided by libtaskmanager
is a unknown pixmap. In such cases we should paint the
last valid one. That way it is always painted the correct
svg file even when removing a window that doesnt have
a launcher and the libtaskmanager provides an unknown
pixmap for it
--the user can add a previewsDelay value in ms in the
latte plasmoid General settings which can be found
in a layout file in order to change the delay which
a preview is needed to be activated. Values lower
than 150ms are ignored because they break the previews
experience by providing faulty previews
--protect wheel actions in order to not trigger themselves
multiple times
--use a timer to achieve this goal in order to be able
to support also X11 systems that have previews enabled for
all windows (a behavior that normally breaks the isMinimized
state)
--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
--there was an old code path that wasnt using the
new way of publishing tasks geometries. That is that
normalize the values in order to be always valid and
in the screen boundaries
-- Magic Lamp effect doesnt like coordinates outside the screen and
width,heights of zero value... So we now normalize the geometries
sent in order to avoid such circumstances
--changed the design totally and use only signals
between plasmoid in order to update their models. This
way the launcherList from their tasksmodel should be
updated only on the initialization phase of the Latte
plasmoid. Afterwards signaling between them takes
place, in order to inform each other for adding,
removing launchers, moving them and assigning them
to activities
--this is only for the case that the launcher is called
through a shortcut. The dock mask in that case uses the
midThickness and for that the bouncing launcher must be reduced
--add functionality for layoutManager
--add widgets action and alternative layout action to
layoutManager
--remove more functionality that belongs to globalSettings
--when changing layouts/old sessions from the Latte Tasks
Context menu, Latte was crashing very often. Add the switching
code into a Timer to make its execution asynchronoushly
--as in an older commit has been documented the qml
function childAt doesnt work propery for our ListView,
there are cases that returns an empty/null child. For this
reason we have implemented our own childAtPos function in
order to immulate the save behavior. Unfortunately there
wasnt a check in it that the items checked based on their
geometry they were actually TaskDelegate's. This fix not
only fixes bug #574 but also should provide a cleaner dragging
behavior, at least for the dragging phase
--identify startups better in order to distinguish
them to those that belong to launcher and should be
shown immediately and those that dont belong in any
launcher and they shouldnt be shown
--this commit is the last for this to be supported.
It checks if the globalLauncherList is empty and in
such case when syncing is enabled the current dock
launchers are used
--in X11 now the globalshortcuts class takes into
account if the user presses any modifier in order
to hide the dock
--if the dock is hidden whenever a relevant global
shortcut is triggered the dock is shown and number
indicators for the tasks are shown
--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.
--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
--this commit takes into account applets separators
and the internal separator so that the number of
separators that are subsequent do not influence the
parabolic effect animation
--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)
--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!!
--move all the logic around parabolic effect signals
into one place, ParabolicManager. The ParabolicManager
is responsible for triggering all the messages to tasks
that are neighbour to the hovered task. This will
help a lot to catch cases such as separators and proper
clearing zoom.
--when the attention animation is played for a task
and the user hovers that task, the animation is ended
smoothly and if the mouse is still hovering the task,
the tasks are restored correctly
--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
--new architecture for the internal tasks separator,
one of which we can build upon for the future... No
breakage in the animation now, it is much smoother and
cleaner... but... it is needed to update all the pieces
around in order to work properly on all cases...
--when a task needs attention the task bounces for
8500ms instead of 6500ms
--the color animation of needs attention was
improved in order to not drain the cpu cycles
--all animations concerning needs attention,bouncing
and color are stopped after the 8500ms timer
--the bounce animation is not stopped in the middle
but it waits each bounce to finish in order to make the checks
--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
--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.
--support correct calculations for the internal
separator case. The calculations became more generic,
what has to be done now is to support same calculations
for applet updateScale also
--there are launchers that do not trigger properly
theirs apps, so in the end of the animation the launcher
was remaining locked and wasnt animated because it was
waiting for the app window to be created. This commit
fixes this, if the launcher at the end of the bouncing
animation is not in removal stage the it is properly
unblocked
--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
--ListView is anchoring its children very strange.
This was creating circumstances that the children
were anchoring themselves wrongly e.g. when removing
them and in some animations. This commit introduces
heuristics (workarounds) for these cases. The
broken anchor situations are protected by introduced
correct anchors from our qml side in listview
child items
--by taking account the libtaskmanager way of doing
things. Latte is trying to delay the removal of the
launcher in order for the animation to play correctly.
At the same time if a window or startup is added is
not shown if there is a waitingLauncher(animated launcher)
until this launcher completes its animation
--import launchers and use new architecture,
an new record in settings is appearing called
launchers59
--this patch works only from plasma 5.9 and above
--it gives many improvements such as the "pin" feature
and the explicit launchers can be placed even
between global launchers
--this patch supports activation through shortcuts
--Meta+number, activates the relevant task, for
groups by default it activates the next available
window in the group
--Meta+Ctrl+number, create a new instance for that task
or launcher
--the user should know that must first enable these
shortcuts at plasma global shortcuts configuration
window
--the only way I have found to show correct
tooltips is to hide and show the previews
window with some small delay, all the rest
workarounds do not work, they create different
issues
-- there is a conflict between preview windows
and highlight effect, it creates a crash when both
are activated during hovering. So we enable in each case
only one of both
--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
--the windows count sometimes do not count
correctly for example with firefox window.
In such case the removal animation is called.
This patch protects the hiding animation
that needs hiding the main icon when this
is the last one shown in such cases
--during closing a task the decoration
from libtaskmanager returns no valid strings.
The problem was first observed with the
remove window animation. To solve it
introduced at our iconitem a lastValidIconName
that contains the last valid iconName.
--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
--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
--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
--this improves the way tasks geometries are
published for the windows. This improves the
experience for the minimize kwin effects. With the
old code there were many cases that the animation
was broken
--when a task is removed too fast then some
animations were not informed that had ended.
So there was an addition animation signal but
no removal animation signal. This fix protects
this in two different cases
--the normal state also from now own uses only
the animations states and no the hovered task
indicator. This simplifies things a lot and probably
creates also a much robust experience.
--the infrastructure is in place in order to not
need the automaticAnimationLength flag. From this
commit masking based totally only on animations
flags and on hovering indexes
--expose quit action
--hide remove action when only one dock exists
--udpate edges when a new dock is added
--connect the destroyed event of containment in order
to remove also the dockview
--remove correctly the dockviews in the application
exit