--the menu is sending the containment id to
Latte::Corona and afterwards calls for the menu
data. These data now are including also the view
type, memory usage, active layout name and of
course the full layouts list shown to menu.
This is improvement from D18918.
Summary:
--this way any part interested to know the
real type of Latte::View it can access the
all new type() property
Test Plan:
test view settings that indicate correctly
the panel/dock type
Reviewers: trmdi, #latte_dock
Reviewed By: trmdi
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D18926
--move out from globalshortcuts functions that were
related to latte views functions such as sorting,
highest priority etc. All these were moved to their
appropriate places in layout manager or layout classes
--the user can disable "global shortcuts based
on position" by disabling the global shortcuts
for the first two latte items
--improve texts readability
BUG: 403880
--global shortcuts now tracks modifiers changes
and trys to do the best for the user.
1. When Meta is pressed and holded latte views are
shown
2. When Meta is clicked but without been holded then
the Application Launcher code path is preferred
3. Activating Latte entries does not follow the
Meta pressedAndHolded code path
4. Pressing any other modifier except Meta cancels the
Meta pressed code path
BUG: 403734
Summary:
Use `KModifierKeyInfo` to display shortcut badges while holding Super
BUG: 401768
Test Plan:
Just playing with it.
I still don't understand the `GlobalShortcut` class very well, correct me if I make any mistake.
Reviewers: #latte_dock, mvourlakos
Reviewed By: #latte_dock, mvourlakos
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D18620
--there are deprecated applets that are not
used, I dont know under which circumstances
this ghost applet configurations are created,
they are shown more commonly under plasma
systrays
--when Latte crashes the global shortcuts from applets
remain untouched in kglobalshortcutsrc file. That fact
based on the Latte architecture that can alter applet
ids during layout loading can break the global shortcuts
experience by creating multiple global shortcuts records
for the same applet and by disabling some shortcuts because
these shortcuts are already enabled for ghost applets of
the crashed layout. This patch fixes this by removing all
applet global shortcuts during startup. Applet global shortcuts
are already saved in the layout file based on the current
plasma architecture, that fact simplifies things a lot.
BUG: 401184
--the Application Launcher triggering through global
shortcuts (codepath) was missing a release for
visibilitymanager in order to work correctly after
the applet trigerring.
BUG: 403471
--there were cases for small screen resolutions
that because the view settings windows did not
change its height, it was not changing its placement
to the side of the screen
--When the user has chosen a solid background when
there are windows touching the Latte panel then in
such case windows that are touching the panel not
just at the edge but at the at any point of the latte
panel are also considered as touching windows
--The "snapped" term that was used before in the
visibilitymanager was changed to "touching"
--there were cases that the focusOutEvent from
secondary config window was sent before the
primary config window has become active. In that
case all config windows were closing with no
reason
BUG: 402776
--when the user has enabled the monochrome colorizing
in that case in applet options there is now a new option
in order for the user to choose if wants or not that
applet to be colorized. Such an example are colorful
applets that lose their proper appearance through
monochrome option.
Summary:
- `timeout = 3000` is a bit short on some computer. Use `timeout = -1` will work for any case.
BUG: 401041
Test Plan: BUG: 401041 is fixed on my computer.
Reviewers: mvourlakos, #latte_dock
Reviewed By: mvourlakos
Tags: #latte_dock, #plasma
Differential Revision: https://phabricator.kde.org/D18258
Summary:
Currently, when dragging a window from the panel to move it, it breaks the autohide behaviour of active docks/panels. This change imitates a release event on X11 to circumvent these problems.
BUG: 403104
Reviewers: mvourlakos
Reviewed By: mvourlakos
Subscribers: plasma-devel
Tags: #latte_dock, #plasma
Differential Revision: https://phabricator.kde.org/D18194
--when containment changes status it was
unblocking the visibility manager. This patch
fixes that situation and the blocker remains
under editMode. This way the dock can not be
hidden when it is in editMode.
Summary: Fix minor typos in messages and comments
Test Plan: No major changes to prevent compilation and usage
Reviewers: mvourlakos
Reviewed By: mvourlakos
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D17894
--the luminas functions didnt work well
for all cases. Latte is now using brightness
functions as described at:
https://www.w3.org/TR/AERT/#color-contrast
this patch fixes all cases mentioned in the bug
that Latte contrast identification did not work well
BUG: 402115
--in order to update window manager flags properly
in some cases a dock recreation is needed. But that
dock recreation when takes place when the user choses
to move its panel between different screens (that recreation
shouldnt be needed) in such case it creates crashes
-- Latte screen ids are different from plasma
screen ids. This class helps in order to help
translating the different screen ids between
Latte and Plasma.
--when color schemes from themes are used there are
cases that the WM records do not correspond to the
colors that the plasma theme will use. In such cases
the color scheme file that is passed to applets can
create colors inconsistencies. For this reason we
update the default color scheme in order for its
WM values to be consistent with the plasma theme.
For the record plasma theme is using Colors:View
group for its main colors.
BUG: 401431
--enable shadows by default on startup otherwise
the FrameSvgItem sets is imagepath to "" and that
can create a crash during loading/unloading a
layout
-rename also to shadow to innerShadow for
better naming. This shadow is used when the
shadow is drawn inside the window from qml
side, such examples are the dock case and the
editVisual case
--moving a task now is not synced immediately to
other docks. Syncing takes place only in the end.
The dock in which the user changed the launchers
order sends a signal to other docks to update
theirs launchers order.
BUG: 401232
--the secondary configuration window can be shown
either inline or at its own window. In order to
be shown at its own window, that window must not
overlap with the main window. The new implementation
validates this at all cases.
--plasmathemeextended is going to provide all the
functionality that current plasma theme infrastructure
does not. Such as roundness and dark/light color schemes
--support painting based on the active window scheme.
Added a schemecolors class for this and updated
abstractwindowinterface to provide tracking for windows
color schemes.
--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
--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
--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
--add an option in Tweaks page in order for the user
to define which dock/panel will have the highest priority
for global shortcuts activation. This option can be
used is per layout basis. Each layout can have its own
high priority dock/panel for Latte unified shortcuts.
BUG: 398914
--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
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
--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
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
--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
--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.
--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
--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
--with this commit now Latte is able to identify what are
the global shortcuts used for each activation entry and
also to not show at all any badge for activation entries
that are disabled from the user
BUG: 397128
--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
--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
--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
--when trying to activate an entry through
global shortcuts we should take into
account the docks that we have already
access but that should not block the action
code.
--in multiple layouts environment the user
may prefer different settings for its global
shortcuts, in some may wants to use global
shortcuts for its applets and in another
layout may not.
--when an application launcher exists, Latte can show
a "Meta" badge for that applet instead of the global
shortcut action number. With this patch we take also
into account when the assigned application launcher is
in different dock/panel and show it accordingly
BUG: 396753
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.
--when recreating the dock/panel because of
visibility mode changes sometimes there was
a crash because of the timers for the workaround
of isVisible() changes
--give the user an option in layout file in order
to enable/disable borders for maximized windows.
the option is called "disableBordersForMaximizedWindows"
and must be put in LayoutSettings section
--use DoubleClick to change ShowInMenu
--dont change Activities when Activities combobox
loses focus, only when the user has really clicked
an element
--select user-set backgrounds properly when showing
the combobox backgrounds popup
--in some systems that layouts are readonly when
copied to user "latte" directory were still
read-only. We are fixing these permissions with
this patch.
--the old architecture that was trying to keep
an internal separators record couldnt catch up
and at the same time could create issues with
internal separators at different activities.
-- under X11 it was identified that windows
many times especially under screen changes
dont end up at the correct position and size.
This vailidator(timer) will enforce repositionings
and resizes every 500ms if the window hasnt end up
to correct values and until this is achieved.
--because focus is lost from dock tooltips the
dock settings window was closing. We take into
account that case in order to not close the
dock settings window in such case
--different hardware can have different delays
in order to inform for screen changes. The tracker
(an internal timer that is) informs Latte after
a specific interval in order to track these changes
and respond accordingly.
--by default now Latte supports the KWin Edges mechanism,
this way the following issues are fixed:
fix#935, fix#721, fix#687, fix#512, fix#514
--improve dock behavior when the user user touch
gestures
--fix #144, support KWin bright placeholders
--this behavior can be disabled if the user prefers
the old one from the Tweaks page
--in !compositing no more is shown a 1px line at
the screen edge when the dock is hidden
--support KWin Edges in Multiple Layouts state under
X11
--recreateDock is used when the visibility mode
changes and as such the window must be recreated
in order to work correctly. Any remaining code
found for such function in corona and layoutManager
is removed.
--exhausted to discuss this so often so in the
end it may be my perspective wrong. Quit button
in dock settings window changed to Close button
and the Quit option moved to menu bar of the
general Latte settings window with shortcut
Ctrl+Q
-- changing name of layouts should have a visual
indicator and at the same time the Switch and
Remove buttons should update their states
properly. A Switch or Remove action shouldnt
be allowed after a layout rename until the user
has confirmed the new name for the layout.
--the check in order to identify if a maximized window
overlaps with the dock wasnt always been executed. That
was the case for multi-screens environments.
--this also fixes#908. Everything was ok except from
the fact that in Single layout mode the needed
lastUsedActivity variable was empty and thus it couldnt
be tracked to update the needed wallpaper correctly.
--when the user changes wallpaper there is a chance
that the lastScreen has the same value with the old
one. In such case the wallpaper must be updated.
--enhanche the dynamic background feature and
in ordre to improve contrast with the underlying
background Latte now calculates the luminosity of the area
underneath the panel and based on that chooses the
best color to create contrast. The colors are chosen
only between textColor and backgroundColor.
--the GhostWindow which is used for AlwaysVisible mode
under wayland during startup there was cases that its
geometry was exceeding the maximumGeometry sent.
BUG: 390017
--the wayland interface couldnt orchestrate correctly
with the corona and the application exit. The whole
architecture changed and the window manager now is
provided by corona and corona is also responsible to
keep only one instance of it and close on exit.
--remove the Plasma Label that was used to set
the Latte trademark based on Tangerine font that
was distributed from app source code
--remove the Tangarine font from source code
--this gives the time for docks to close and also
to not create any rare crashes because qml settings
window calls this code path from its Quit button.
--use internal edit mode to wm's visibilitymanager.
More specific use it in AlwaysVisible mode in order
to not publish the new struts because the animations
have ended.
--ghost containments such as when a user
deletes a dock without notification confirmation
can be removed afterwards when that layout is
loading either at Single or Multiple mode.