--the new implementation possibly fixes two crashes
that could occur occasionaly. First it is ensured
that the new dock in created after the old one has been
removed. We also use directly the containment instead
of using a reference for it which could create a crash
in some cases. One more fix, setting dock visible to false
had no reason as long as it is going to be deleted either
way.
--this was a rare crash when changing to default
session from the alternative one through the context
menu of the Tasks plasmoid there was a crash sometimes
--improve the signaling between the configuration window
and the dockview concerning freeEdges for current screens
and docks count. Now the docks counting is different
between screens and in general
--the new algorithms are using QScreen* values
from dockviews instead of the containment screen()
which can not be trusted at the first minutes
of a dock creation
--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
--doing so fixes a wrong loading issue that
was creating shadows for secondary, third dock
and losing also the focus out event to close
the configuration windows
--draw the wayland surfaces for docks and config
views earlier. That way we are certain that the
signals wont mess up the experience. This way
positioning config views and getting the focusOut
event works correctly
--disable in waylandinterface any x specific code.
In order to be ready that class to accept only
wayland centered code
--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
--the global shortcut class now identify if the user
has release the shortcuts modifiers and then release
the dock to hide. The code was found first in the
plasma activity switcher
--the globalshortcuts class contains all the relevant
code and includes also some functions that were used
from corona to trigger changes into the Latte Tasks
plasmoid
--disable quiting the app when there are no windows
shown. There are cases that between states some
windows may not exist. E.g. when changing sessions
and when activating/deactivating screens
--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)
--improve applets shadows, now the shadows used
are using the backgroundColor when a transparent
panel is forced
--identify better when shadows should be drawn
--after Qt 5.8 the way the ungrabMouseItem works
has changed this introduced a bug:
http://bugreports.qt.io/browse/QTBUG-59044
plasma devs found a solution for this, that this
commit provides. The issue occurs when a user
right clicks (creates a context menu) and to
release it, he clicks in alternative area
outside the QuickWindow that created the previous
contextmenu
--update translation scripts to include translatable
metadata for the appstream file. new dependencies for
the scripts are:
- xmlstarlet
- itstool
--added also greek translation for the appstream file
--update the desktop file naming in order to comply with
new guidelines. Concerning also wayland. The new desktop
file is named to org.kde.latte-dock.desktop
--this patch adds an external config file in
order to store the user layouts. Adds also in
the globalSettings the layouts mechanism
--todo: the confirmation dialog is not working
correctly for some reason. It doesnt return
the accept value and on the exec() function
is crashing
--the commit the records the user the first time
it changes the autostart option to false. When
this happens then latte is not recreating the
autostart file when starting
--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 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
If I overrride the method event I should call to implementation parent, however VisibilityManagerPrivate is triggered from view and VisibilityManagerPriavte is not owner of QEvent
--the delay during creating dockview and setting
its dock window flags from visibilitymanager creates
a situation that the window manager temporary creates
a normal window with no special flags for the docks
--if the user was adding docks too fast then
some of them were added at the bottom because
that was conflicting with the session
implementation. The fix fixes the situation
and preserves the alternative session functionality
--in KF5.32 FrameSvg returns many times a mask
that is an empty QRegion(). this patch makes
sure that at least our rectangular metrics
for masks and effectsarea are used instead.
Of course this means that themes with rounded
corners dont look as they should in !compositing
state
--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
--this needs from the user side to add
in the .config/kwinrc
[ModifierOnlyShortcuts]
Meta=org.kde.lattedock,/Latte,org.kde.LatteDock,activateLauncherMenu
--the user is able to change into another
session/profile called "On The Road" for
which can set up its docks and applets
differently according to its needs. For
example hide its name, status, place
living etc.
--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
--support also an edge case where a top and left dock
overlap each other but there is also a free space in them.
This case hasnt been taken into account into the previous
implementation
--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 commit reduces into half the calculations
needed from the vertical docks in order to position
themselves based on horizontal docks. More specific
it makes the QRegion calculations only once for
each dock instead of two times
--this commit uses free region from corona instead
of free rectangle in order to calculate size and
positioning for the docks. This way is possible to
be positioned more intelligently.
--refer to last 6-7 commits that contain this new
multi-screen behavior
--the new multi-screen behavior becomes more intelligent.
Latte trys to never let you without a dock containing
tasks plasmoid. It trys to do that intelligently not
depending on how many docks you have registered and if
they are set to explicit or primary ones
--primary docks are removed when their edge is
occupied in the new primary screen and their
current screen is destroyed. Also they are added
when the screen edge is available
--the last dock containing tasks can not be removed
automatic by Latte based on screens heuristics
--on startup Latte checks if a dock containing tasks
will be loaded based on screens associated. If it
doesnt it loads the first dock containing tasks and
puts it on primary screen and setting also its flag
to onPrimary
--on the configuration window when a dock changes from
explicit to primary screen by latte automation the
record of the previous screen is shown correctly
--unfortunately this contains also white spaces
fixes. Sorry for this but by implementing multi-screen
the laptop wasnt correctly configured for
astyle and whitespaces
--this commit is just a small clean up that
acts as a reference for all the previous
10-12 commits that provide the new anticipated
multi-screen support. With multi-screen support
the user can set for its docks either to be always
on the primary screen or an explicit one... The
docks are loaded and removed automatically on
screen changes