--when unloading layouts applets are deleted
and subsequently all the heuristics for identifying
expanded applets are removed. In such case
there were rare cases that applet()->id() was
trying to be accessed and that was subsequently
creating crashes because applet did not exist
anymore. AppletQuickItems probably are deleted
after applet has already been destroyed.
--the new approach is much more memory efficient
as the same indicator config ui is used for ALL
views and anything related to config uis is now
handled by the manager instead of each diffent
view on its own
--original data indexes may not be consistent with
current layouts data. If a layout is removed from
current layouts then many original layouts data indexes
are totally different. This commit fixes this.
--curent view indicator config ui is not deleted
when the PrimaryConfigView changes its parent view.
For each view there is one indicator config ui
that is kept available to be shown when appropriate.
This way we avoid unnecessary recreations of indicator
config uis when the user cycles between different views
settings.
--when the shared layout has user assigned icon
then that icon is always preferred
--choose which icons are drawn for shared layout
based completely on what icons are already chosen
for the assigned shares (central layouts)
--drop the sub handler detailsoptionshandler
because the new design wont have tabs like the main
settings window does. Views table will be provided
through a new sub dialog.
--inEditMode is now updated directly from
containment()->inUserConfiguring()
--add again hiding blockers when View gets
into edit mode. That was lost during last commits
because it was part of Visual qml code that
has been moved to another window.
--floating gap window is now activated independently of
kwin edges supports and only when really needed.
SidebarAutoHide visibility mode has been adjusted in order
to work nicely with floating gap window helper
--when the user has triggered its showing. It must be
given enough time for the user to observed the sidebar
contents before checking out if the sidebar must hide.
--all storage functions are now taking place into
the same Latte TMP directory that is introduced
for layouts. So no more .bak files are needed from
~/.config folder.
--the new code succeeds in more cases and
trys also to handle some wrongly designed
cases such the Air plasma theme that provides
zig-zag corner shadows
--many plasma themes disable their shadows with
settings their opacity to zero instead of removing
their shadow elements. In such case the new approach
sets the hasShadow flag to zero
--the new approach is first tracking panel-background
shadows if they are available and shown in order to
identify the plasma theme panel background roundness
--Plasma::FrameSvgItem margins are not consintent
in order to provide helpful hints how plasma theme
panel-background svg is drawn properly. The new
approach calculates paddings based on top,left,bottom,right
svg elements and in that way a consistent a properly
background.minimumThickness is discovered.
--as it appears in wayland the struts calculations must be
applied for exact screen_edge coordinates and use only the
view shown thickness. During the process floating panels
struts were not accurate at all cases and as such they
were fixed also for x11.
--when View::Visibility::mustBeShown signal is
triggered then the Views should always be shown
even when KWin has hide it with no real reason
--force appling activities to ALL View related windows
when changing current Activity. This way we make
sure that when KWin makes faulty assignments,
Latte is coming to the rescue.
--use the original Latte trademark at all
times in Primary config view setttings. In
the past there were icon themes that was
changing Latte icon to something alientic
and that approach was breaking the Latte
trademark visual appearance.
--qt 5.15 keeps the non sense for continuously informing
the user for qt 6.0 changes. Problem is that as long an
application supports qt < 5.14 these deprecated functions
can not be fixed yet.
--The new implementation for snapping needed to remove
the touching view edge from touching algorithm. The
windows trakers now provide two separate values for each
touching.
----First value is for regular window touches for which
their window geometry intersects with view published
absoluteGeometry
----Second value is for windows that are touching
view edge without intersecting with view geometry
--when a behaveAsPlasmaPanel is sliding-in and View
is in editMode, it is a good idea to calle
Positioner::syncGeometry() in order to validate
the View window geometry in edit mode. The problematic
case example was a right SideBar Panel that when
was hidden and the user was using Meta+A to
show its settings, the View did not change its
geometry properly in the end.
--View::Effects now provides in API in order for
elements to publish regions that need to be added
or removed from View::mask(). A good example for this
is View Config windows that must remove a rectangle
for their bottom edge in order for users to have
fully access to their action buttons at the bottom.
--when hidden configuration windows are deleted memory
consumption is improved and provides much lower values
--when hidden configuration windows are not deleted
memory consumption increases but their responsiveness
for hiding/showing is instantly
--really handy and beautiful in order to confirm the
calculations that are valid. Already a bug was found
for ParabolicEffect. There is 1px difference between
hovering Tasks and Applets
--View recreation path was broken from new implementation
for Latte::Interfaces that pass objects to containment
interface. This is now fixed and Interfaces::View object is updated
and broadcasted correctly when changed
--when GtkFrameExtents are zeroed for behaveAsPlasmaPanels
then it is better to recreate the view to avoid freezes and
hidings of the view because of compositor strange behavior
--use a single slot when View triggers its workarounds
for the kwin issue that kwin hides panels when an activity
stops. In such case the view shadows are also redrawn.
--there are cases that the Blurred area svg returns
a NULL mask() even though it should not. In such
cases the workaround takes place and for the workaround
the calculations have already taken place and we
do not need to reapply them because in that case
the blurred area moves out of the window.
--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
--implement things simpler by using the same
CoreTypes header file both for LatteCore.Types
import statement and App c++ implementation.
Let's leave in the future to decide if
a LibLatte is really necessary.
--always find the highest view that is going to be
used for global shortcuts based on position activation
--adjust the code a bit for SideBars in order to show
when a SideBar is called for global shortcuts based
on position activation and hide correctly when the
global shortcut is not triggered any more.
BUG:420356
--when the user requests to activate an applet that
it is not expandable such as DashBoard then only
thing that it is possible, it is to forcefully
activate it
BUG:420275
--use a more logical organization for types. LibLatte2
is split to become LatteCore library and Latte types
are now moved to application level. The Latte Types will
be split even more... Tasks-Only related types will
become Latte.Tasks types
BUG:420210
--First steps in order to support mulitple Tasks
applets in the same dock and panel.
--Step1: migrate values from Containment to Task
applet.
--Step2: deprecate Task applet options that are
found in containment
--Step3: provide multiple dynamic Tasks tabs in
settings
--when default indicators are reinstalled then
views do not have to be reload its sources. The user
is expected in such cases to restart Latte. At the
same time installing Latte multiple times does not
create too many views recreations with no real
reason
--add GenericDialog class in order to provide
same implementation for all settings::dialogs.
As a first step GenericDialog provides a common
showInlineMessage api
--when real panel views are slided out either for auto
hiding, dodge case or dynamically removing their screen
margin the desktop available space should not be
changed; it should stay the same.
--LastActiveWindow is providing information to
applets thus special windows that contain
the following flags:
skipTaskBar AND (skipPager OR skipSwitcher)
these windows can be totally ignored.
In such window case the LastActiveWindow used
are provided.
BUG:419384
--the new infrastructure can remember settings between
CustomBackgroundStyle and ColorStyle in order to
help the user to not have to reassign values
when changing backgrounds, between predefined
colors style and custom one.
--the new code can understand ALL applets that are
inside an internal containment style applets such
as plasma, nomad systrays and group plasmoid
FIXED-IN:0.9.10
--the workaround to reshow views when the activities are
pausing from the kwin_x11 bug interfer with user REMOVING
a dock or panel. We now protect the workaround to not
interfere with REALREMOVING
--LastActiveWindow application data should be updated
only when the last active window id is equal with
the sent application data. Otherwise we may show
Application name and icon for totally irrelevant
window.
Bug was first reported at:
https://github.com/psifidotos/applet-window-title/issues/89/
FIXED-IN:0.9.10
--we introduce handlers that are going to be
responsible for the ui parts of settings windows.
So having data structures, MVC for models/tables that
are used and Handlers for any ui interaction
simplify the implementation and make it more
structured in order to be maintained and grow
safely.
--this way the model items can become aware
of all data changes and become visual
responsive accordingly. All changed data
should use the italic paradigm... If a
value is changed from its original value
can become italic in order for the user
to know which values have changed.
--behaveAsPlasmaPanel can now slide in/out as real windows
but after they hide there is a chance that their geometry
should be updated. This patch makes sure that this will
happen exactly before the BEHAVEASPLASMAPANEL starts
sliding-in.
--when the user has chosen to hide the screen gap
when there is a maximized window in the screen and
at the same time the View behaves as plasma panel,
it now slides in/out nicely
--this way we make sure that the user will be
able to trigger showing with mouse at the screen
edge. Using the window mask to succeed in this
in not an option.
--change them with moveTop/Left which provide
the exact math calculations that are needed
for geometries. Functions setX/Y must be
avoided because they may change the width
and height values.
--when the user has altered the free_activities from
its context menu then settings window it must better
update its record concerning the layout that will
be responsible for free activities