--This is a HUGE FEATURE and so important for multi-screens
users. It is introduced as one single commit because it
reimplements plenty of infrastructure changes and it will
be easier to identify newly introduced bugs.
--Users can now choose for their docks and panels to belong
at various screen groups. The first two screen groups introduced
are AllScreens and AllSecondayScreens. In the future it might
be possible to provide CustomScreensGroup that the user will
be able to define specific screens in which a dock or panel
should be always present.
--Current solution specifies an Original dock or panel and clones/copies
itself automatically to other screens. So docks and panels in other screens
are just real docks and panels that reference themselves to original
docks and panels.
--Clones are destroyed during layout startup and are automaticaly
recreated. It is suggested to export your layouts through the
official Layouts Editor in order to share them because in that case
clones are not included in the new generated layout file. If in any
case you do not this and you share your layout with any previous
versions then your clones will just appear as separate docks and
panels that belong to specific screens.
--Automatic syncing was introduced in order to keep up-to-date
the configuration of Original docks and panels with their referenced
Clones.
--Automatic syncing currently works for all docks and panels settings,
for all normal applets configurations and for all subcontaiments
configuration such as systrays.
--Automatic syncing does not work for applets inside subcontainments
such as Group Plasmoid. In such case it is suggested to configure
your applets inside your Group Plasmoid in the original dock or panel
and afterwards to trigger a recreation for the relevant clones
--Manual recreation of clones is easily possible by just choosing
the dock or panel to be OnPrimary or OnSpecificScreen and rechoosing
afterwards the AllScreensGroup or AllSecondaryScreensGroup
--fix how CanBeAboveFullscreen windows option can be
enabled/disabled properly and work correctly
--fix how Blur is handled for docks and panels that
can be AboveFullScreenWindows under X11. Blur is now
working correctly for them but of course GtkFrameExtents
do not work at all because they are intended to work
based on KWin implementation.
BUG:443536
--using hidden VisibilityManager::floatingGapWindow
implementation in order to provide full access for
the area which is below the screen margin when the
user has disabled user interaction for that area
BUG:433820
- Hide Thickness Screen Gap scenario provides two different struts thicknesses.
--- [1] The first struts thickness is when there is no maximized window and is such case
--- the view is behaving as in normal AlwaysVisible visibility mode. This is very useful
--- when users tile windows. [bug #432122]
--- [2] The second struts thickness is when there is a maximized window present and in such case
--- the view is hiding all of its screen edges. It is used mostly when the view is wanted
--- to act as a window titlebar.
BUG:432122
--new single instance editing windows revealed
an issue with buttons groups that use ExclusiveGroups
in order to identify their property. All such
implementations have been adjusted in order to
provide a more concrete experience
--that option from Behavior page is now renamed and
also its behavior has been upgraded by enabling
three possible options:
1. Disabled always
2. Auto - which is enabled for Docks and disabled for Panels
3. Enabled always
--used a video demonstrating multiple panels at the
bottom edge with padding between them
--max/minLength and offset are changed to float values
--max/minLength and offset can now be adjusted with
Ctrl+Wheel over their label in Appearance tab page. Clicking
the previous mentioned label will round the values
--introduce an autoSizeEnabled value in order to block
auto size mechanism when it becomes annoying. Such issue
appears more often to Latte panels
--block MenuZ from Latte icon heuristics
--improve types and references and add types splitted
at better places. So now we have
- LatteCore.Types that are global for all components
- LatteTasks.Types that are private to tasks plasmoid
- LatteContainment.Types that are private to latte
containment