--fix wrong placement at multi-screen environment
during startup. freeEdges function was not sufficient for
reconsiderScreen() because there was a chance to
exclude edges that even though they were available
it returned fault results. Such case is when
a view request available edges for specific screen
and the edge of that specific view is also exluded
because that view has not finished its movement
to the new assigned screen.
--fix re-adding an explicit dock when its screen
is activated. A check was missing in order to
confirm that a primary dock is occuping that
edge but we must check also that the primary
screen is the same with the explicit one.
--add/improve debug messages
(cherry picked from commit 0bab344682)
BUG: 399456
FIXED-IN: 0.8.2
--dont call costly syncGeometry when drawShadows
externally is called. In such case only updating
shadows/borders is needed.
(cherry picked from commit be7bbfe848)
--try to make screens assignment and window geometry
more consistent. There are three variables in a dock
window for its screen and positioning to be accurate,
screen(), m_screenToFollow, m_screenToFollowId
BUG: 399456
FIXED-IN: 0.8.2
(cherry picked from commit f955c6a40c)
--the new code contains more comments and except
blacklisting all NET::Properties2 signals that are
not accompanied with NET::Properties it also
whitelists specific states for NET::WMState.
This should lower a lot the calculations needed
in order to support the dodge visibility modes.
At the same time apps that are abusing X11 signals
should be ignored totally because the whitelisted
states and NET::Properties are only set by the
user or the window manager.
BUG: 399149
FIXED-IN: 0.8.2
--multi-screen fix for explicit docks. There were
cases that explicit docks during startup were
moving to onprimary screen even though they shouldnt
based on the new multi-screens implementation.
Bug was tracked down at a faulty series of signals
that were overwriting dockView config values
to default values and that was creating the fault.
-- one more fix for multi-screens, a missing return
statement in case an explicit dock is called and its
edge at that specific screen is occuppied by an
onPrimary one.
BUG: 398219
FIXED-IN: 0.8.1
(cherry picked from commit 09fe5e385b)
When there was only one latte dock and the last
active window was closed, the dock wasnt showing
afterwards. The dodge logic now has been improved
in order to not lose any window manager signals
that could help indicate when to show/hide a
dodge capable dock
BUG: 398052
FIXED-IN: 0.8.1
(cherry picked from commit 203c740980)
--there are cases that the window manager doesnt
return any active window at all. In such cases
we can assume that our docks/panels dont have to
be hidden.
BUG: 398052
FIXED-IN: 0.8.1
(cherry picked from commit 66817695fe)
when the plasma theme was not supporting shadows then
Latte was double drawing the panel background when
the user has chosen that wanted shadows
BUG: 397980
FIXED-IN: 0.8.1
(cherry picked from commit 87094a6fe7)
--if a dock/panel was containing a systray there
was a chance that the systray was messing the
calculations for adding/removing docks based on
the screen and edges changes
(cherry picked from commit 285a2f8764)
--Latte will no longer try to be too smart concerning
the multi-screens behavior. At the old implementation
Latte wouldnt let you reach at a state that you dont
have a tasks plasmoid available. Such a case could be
when the user moves a dock from primary to explicit
screen and disables the screen afterwards. That case
should be thought better in the future in order to be
identified and handled properly without making the
code unnecessary complex. Such an example could be by
identifing the case and asking the user for actions.
(cherry picked from commit b2f1f98b57)
--there are cases that the window geometry isnt consistent
for maximized windows. That was breaking the previous
implementation of dynamic background because of:
https://bugs.kde.org/show_bug.cgi?id=397700
the new implementation is using only the window center in
order to identify the screen in which a window is
present
BUG: 397344
FIXED-IN: 0.8.1
(cherry picked from commit bb8835f156)
--the background contrast effect should be applied
only when the dock/panel is visually solid otherwise
it may block the transparency settings
BUG: 397431
FIXED-IN: v0.8.1
(cherry picked from commit 78b41eff91)
--the old code wasnt screen independent for identifying
windows that touch the panel edge. There were cases
that when a window was touching a panel edge at
screen A to faulty identify that is touching
screen B also. The code now is more robust and it
can also handle cases that window is touching two or
more different panels in different screens.
BUG: 397076
FIXED-IN: 0.8.1
(cherry picked from commit 7bceb7e4b7)
--Improve the series of events in order for CopyDock
to work better in multi-screen environments. Copy Dock
should create the same dock in the same free edge at
different explicit screen when that edge is already
occupied in the origin screen
BUG: 397081
FIXED-IN: 0.8.1
(cherry picked from commit 30c90d2a41)
--after v0.8 release many issues with multi-architecture
were identified. An alternative approach was needed
in order for Latte to get a more user-predictable state.
In new approach:
--onPrimary docks have always higher value
and should be shown, this is also like how plasma is
moving its panels.
--explicit docks are removed if their edge in their screen
is occupied by an onPrimary dock
--be stupid smart in order to check if docks contain
tasks and try to not remove them based on screen-changes
is removed! Over-Complicated code that doesnt help
in maintainability...
one of the issues was reported at following bug report...
BUG: 396806
FIXED-IN: 0.8.1
Summary:
In Latte global shortcuts is missing one record
for New Instance of ninth record
BUG: 396751
FIXED-IN: 0.8.1
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D14273
--v0.8 introduced unified global shortcuts for all
cases, that means that applets are also taken into
account for Latte activation/new instance global
shortcuts. A new parameter is introduced with
the patch at Latte global settings file called
"unifiedGlobalShortcuts", the user can set that
parameter to false before Latte startup in order
to use only global shortcuts relevant to the
Latte plasmoid.
--when changing Single mode to Multiple mode the latest
changes from user didnt get into because the kde cache
from KFileConfigPtr hadnt been updated yet. This
patch fixes this by using a temp file that contains
the layout in question.
--there were cases that during creating
or copying docks the applets ids were
created inconsistent by creating applets
with ids already reserved. This patch
fixes this by using the applet ids found
in the layout file and not the one loaded
in memory.
--a visual indicator in order to show which plasma
applets have been overloaded from Latte. The overloaded
mechanism is a way in order to make these applets work
properly with Latte parabolic effect
--blur effect is costly this way we limit effects area
to respect the windows boundaries and at cases that
the QRegion returns too main QRects to just use the main
effects rectangle
--this fix possibly fixes the crash related to Blur effect and
moving the dock to another edge bug:396040
--v0.8 is officialy KDE project, so its
existence owes a lot of credits to many
KDE members (for translations, bug reporting
etc.). Being officially a KDE project
responds to the previous credits.
--when the dock was hidden and the user was triggering
the Meta shortcut the app launcher was misplaced.
By using the same technique used when triggering applets
shortcuts this is fixed.