--follow the new panel background way to access its mask
and use it also for both the blur area and mask area when
they are really needed. Such a case in only when the user
has requested for plasma theme default settings
BUG:455567
--use plasma approach in order to show context menus
for applets by introducing a new QuickItem that will
be responsible for this at the bottom of applets and
containment layers
--use ScreenPool as reference for primary screen.
The new code uses PrimaryOutputWatcher class from
Plasma Shell in order to keep track of primary
screen at all cases.
BUG:448418
FIXED-IN:0.11.0
When trying to compile the new Multiple Screens feature released yesterday I got this error on KDE neon:
```bash
[ 83%] Building CXX object app/CMakeFiles/latte-dock.dir/lattedockadaptor.cpp.o
[ 84%] Linking CXX executable ../bin/latte-dock
/usr/bin/ld: CMakeFiles/latte-dock.dir/view/clonedview.cpp.o: in function `Latte::ClonedView::translateToClonesOrder(QList<int> const&)':
clonedview.cpp:(.text+0x1aaa): undefined reference to `Latte::ClonedView::ERRORAPPLETID'
collect2: error: ld returned 1 exit status
make[2]: *** [app/CMakeFiles/latte-dock.dir/build.make:2270: bin/latte-dock] Error 1
make[1]: *** [CMakeFiles/Makefile2:1806: app/CMakeFiles/latte-dock.dir/all] Error 2
make: *** [Makefile:146: all] Error 2
```
After some research I found this StackOverflow answer:
https://stackoverflow.com/a/3026148
Which referenced this FAQ by Bjarne Stroustrup:
https://www.stroustrup.com/bs_faq2.html#in-class
In summary, if a `static const` is initialized in a class, and later is used as a reference in an implementation file, it should also be declared inside the implementation file. The initialization can live only inside the class.
Maybe the compiler used by @mvourlakos has an optimization to overcome such construct.
In my case by adding these two lines I could compile it on KDE neon (after fixing the first error, compilation failed on a second spot).
--some improvements introduced to 0.10.7 broke the
screen switching codepath for panels. With this
fix users can again move panels around for their
screens
BUG:448569
FIXED-IN:0.10.8
--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
--identify correctly for vertical panels in right edge
when they need to draw or not their top and bottom borders.
This is enough in order to position properly these docks.
BUG:448519
FIXED-IN:0.10.8
--this way when a dock or panel is scheduled for
removal but the user undo that removal all
events for main dock/panel window are forwarded
correctly. As a side fix parabolic effect works
just fine now is such scenario.
Since we already require 5.71.0 as min version of KF , it is meaning less to keep old checks for lower versions in code, this will make code more and more cleaner
Since all plasma using cpp17 and we recently switch to cpp14 think that it may be better to keep it more up-to-date and match with plasma
--try to avoid corner cases that wm ignores OnAllDesktops
flag for specific views during startup. This patch should
protect these corner cases.
BUG:447689
FIXED-IN:0.10.7
--when kwin is running then we should always
trust it in order to provide correct struts.
That applies also under x11 where other wms
might fail.
BUG:447595
FIXEX-IN:0.10.7
--ignore docks and panels for availableScreenRect(s) etc.
when they are in startup and they are painted offscreen
--plasma is not ready to accept availableScreenRegion(s) because
after startup moves desktop widgets to the left even though
it should not
--fix availableScreenRegion calculations for Centered and Justified
docks and panels
--some improvements of 0.10.5 broke the windows tracking
initialization. This is a fix in order for windows tracking
to be enabled/disabled properly per dock/panel during
startup phase.
--visibility: simplify and improve code
for restoring and saving values
--enable visibility mode early on the startup
sequence
--enable windows tracking after startup phase
has ended
--windows tracking respect also view geometry
changes and not only window changes from the
desktop environment
Consider -1 as screen edge margin default value
and not zero. This way when duplicating a default
dock AllBorders are not enabled in the new dock.
BUG:446903
FIXED-IN:0.10.5
--when multiple screens placement have edges that overlap
with each other, at that edges struts must be disabled
to provide much better windows behavior. For example when
dragging a window between such screens and there is
an AlwaysVisible panel or dock between them.
BUG:445595
FIXED-IN:0.10.5
--after recreating a view, launchers group is now
assigned again correctly. As it appears the problem
was that Host.MyView ability was sending an isReady
signal that was not accurate enough.
--This new approach paints all docks and panels during
starup offscreen. This way especially under x11 not a lot of
visual glitches are appearing all over the place.
After startup time has ended docks and panels are
moved at their original and valid placement and slide in
animations are triggered.
--send more availableRect/Region changed signals
for more cases and as such all views update
their positioning properly.
--for example when a horizontal view updates its
offset or max length independent of its visibility mode
the neighbour vertical views need to update
and validate their position.
--as it appears many users are using Plasma GlobalScaling
in conjuction with PLASMA_USE_QT_SCALING. This commit
provides plenty of fixes for that scenario in order to
make things workable.
--adjust X11::InputMask based on devicePixelRatio()
--adjust X11::GtkFrameExtents based on devicePixelRatio()
--adjust View::absoluteGeometry() based on devicePixelRatio()
--adjust WM::Tracker based on devicePixelRatio()
--adjust WM::AbstractInterface based on devicePixelRatio()
BUG:444222
FIXED-IN:0.10.3
--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
--when an applet is not identified as expandable
but on the other hand has activated the flag
activationTogglesExpanded then for those
applets the mouse wheel option should also
trigger an activation event
--Menu11 and SimpleMenu applets are using a custom
plasmoid approach in order to be able to position their
popups differently on the screen. This patch considers
this in a more generic way and does not use the default
codepath to show popups from these applets. More
importantly the Needs/RequiresAttention status is used
in order to determine the panel/dock visibility for
these applets.
BUG:441053