--during changing layouts there were cases that Latte
would crash because between deleting containment and
triggering the event to delete the dockview, there was
a race condition. The dockview wasnt deleted and as
a consequence the libtaskmanager or kwindowsystem were
forwarding events to them
--add functionality for layoutManager
--add widgets action and alternative layout action to
layoutManager
--remove more functionality that belongs to globalSettings
--the session functionality is not removed only from
globalsettings class which is just waiting to be removed
tottaly when its functionality moves to the new classes
--the new layout is loaded without closing
Latte and with properly loading globalSettings
and screen from the layout file. The layout
new files are updated when Latte is closing
--users reported that when activating an external screen
as primary and at the same time disabling the original
screen e.g. the laptop one, latte wasnt showing docks at
all. This could also occur on startup. This commit
fixes this and improves more the multi-screen code in
various corner cases
--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.
--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
--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
--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
--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 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
--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.
--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 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
--there are cases that screens instead of returning
correct screen names the return names like
"0:0". These are totally ignored in order to not
break the screen ids database
--in a multi-screen environment that
primary screen is not set to 0 it was
created an endless showing loop at
startup (catch-up race) between
screen:0 and primaryScreen
--the user is able to set some additional
debug flags in --debug state by just executing
the application.
supported flags:
--with-window: provides a separate window
to show metrics from each separate dock
--graphics: visual indicator for the various
elements
--mask: additional debug messages concerning
mask calculations