1
0
mirror of https://github.com/KDE/latte-dock.git synced 2025-01-10 21:18:19 +03:00
Commit Graph

501 Commits

Author SHA1 Message Date
Michail Vourlakos
ec949948b6 fix View recraetion and frameExtents freezes
--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
2020-05-12 14:45:31 +03:00
Michail Vourlakos
b6183c526c update frameExtents at View::forcedWorkaroundShown 2020-05-12 10:30:05 +03:00
Michail Vourlakos
a91f6a8a8e make Effects updateEffect(),GtkFrameExtents aware 2020-05-12 03:10:17 +03:00
Michail Vourlakos
e16ca1f87b release indicator config ui when window closes 2020-05-12 02:38:01 +03:00
Michail Vourlakos
381675ac57 reduce kconfig.sync() calls
--improves startup times in some cases because
it does not write to disk that often.
2020-05-12 02:16:08 +03:00
Michail Vourlakos
e83f7e551e redraw panel shadows after !visible workarounds
--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.
2020-05-11 23:04:44 +03:00
Michail Vourlakos
7f2dc14880 fix Blur calculations during workaround
--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.
2020-05-11 20:59:05 +03:00
Michail Vourlakos
114828ad88 reduce GtkFrameExtents calls/triggers 2020-05-11 18:08:55 +03:00
Michail Vourlakos
3e17f718ee dont block hiding for #debugwindow#(s) 2020-05-11 17:44:30 +03:00
Michail Vourlakos
8b32be15b9 support GtkFrameExtents under X11
--this way to dock windows can now snap beautifully
with windows around them, very beautiful behavior!
That was pretty annoying in the past.
2020-05-11 17:31:51 +03:00
Michail Vourlakos
4501c940f1 fix hide screen gap animation for behaveAsPanels 2020-05-10 21:25:29 +03:00
Michail Vourlakos
dd4e4fb79d rename all Background.MultiLayer values
--much better and understandable names are now used
2020-05-10 20:27:35 +03:00
Michail Vourlakos
1e144fc3e7 solution for Unity style layouts top view shadow
--when a vertical view that acts as a unity-style one
is activated, it sends a signal to top view to update
their visibility in order to stay on top
2020-05-10 20:27:35 +03:00
Michail Vourlakos
1e48d053f7 fix crash when switching layouts
-- the faulter was containmentinterface that was
calling containment()->applets() during view
destroying phase
2020-05-08 10:16:26 +03:00
Michail Vourlakos
0bb838d90e fix triggering for contextMenuIsShown
--it should not be triggered in every view press
event but only when there is or not a context
menu any more
2020-05-06 20:48:56 +03:00
Michail Vourlakos
9be7822b98 upgrade to LatteApp.Interfaces containment access 2020-05-02 13:23:37 +03:00
Michail Vourlakos
e8c15905d6 position properly alignments for real panels
--provide calculations to position properly real
panels that use Left/Right/Top/Bottom alignments
2020-04-29 10:43:43 +03:00
Michail Vourlakos
441fbdf635 plenty of improvements to position Latte panels
--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
2020-04-29 09:54:16 +03:00
Michail Vourlakos
63187ce5b4 remove Latte library as requirement
--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.
2020-04-24 14:52:16 +03:00
Michail Vourlakos
2526ab7e17 rename to MemoryUsage::LayoutsMemory
--easier to read in the code as that type
provides:
MemoryUsage::SingleLayout
MemoryUsage::MultipleLayouts
2020-04-24 12:31:03 +03:00
Michail Vourlakos
9919952239 bring back Settings::inAdvancedMode
--ViewSettings::complexityLevel is not needed
any more... View::Settings will keep only two
states, Basic and Advanced mode
2020-04-23 21:57:17 +03:00
Michail Vourlakos
6e4779e6ab require new official Latte library 2020-04-22 21:10:17 +03:00
Michail Vourlakos
ac3ccb5b98 try to support a public liblatte library 2020-04-22 14:09:42 +03:00
Michail Vourlakos
1ad1dd2982 fixes for globalshortcuts highest view identify
--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
2020-04-21 01:45:07 +03:00
Michail Vourlakos
e368d03222 fix crash from configwindow when switching layouts 2020-04-20 11:45:02 +03:00
Michail Vourlakos
0d0b0413bb activate appletquickitem if it is not expandable
--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
2020-04-19 02:24:56 +03:00
Michail Vourlakos
e525596a04 refactor:split Latte Types to Tasks and Types
--move also irrelevant types to their owner. For
example LayoutsPage is moved to Settings::Dialog
namespace
2020-04-18 16:58:00 +03:00
Michail Vourlakos
5073939335 REFACTOR:split up and refactor liblatte2 and types
--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
2020-04-18 13:39:45 +03:00
Michail Vourlakos
5fdcef81af TASKS:Migrate to multiple Tasks architecture
--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
2020-04-18 13:39:41 +03:00
Michail Vourlakos
0da74fb3ce Tasks:track multiple Tasks applets
--create an infrastructure in order to be able
to adjust and configure multiple Tasks plasmoids
2020-04-18 13:39:41 +03:00
Michail Vourlakos
bde33f98a9 remove blockHidingEvent on SideBar startup 2020-04-15 16:47:15 +03:00
Michail Vourlakos
b296437288 do not reload views for default indicators
--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
2020-04-15 12:50:36 +03:00
Michail Vourlakos
1af553fa13 improve applets context menu placement 2020-04-11 18:31:36 +03:00
Michail Vourlakos
72ebfe1aae improve contextmenu placement for containments 2020-04-11 00:41:29 +03:00
Michail Vourlakos
8b41314b2f enable scrolling activation only for expandable
--systrays/internal containments are blocked from
this
2020-04-10 12:31:31 +03:00
Michail Vourlakos
6fafa83b15 improve applets context menu placement 2020-04-08 20:49:14 +03:00
Michail Vourlakos
0046c904d1 View:Move expanded applets code to View::Interface 2020-04-08 15:22:38 +03:00
Michail Vourlakos
fa65462dea move View::deactivateApplets to extendedInterface 2020-04-08 14:39:12 +03:00
Michail Vourlakos
50c136b56f provide View::ExtendedInterface to qml parts 2020-04-08 14:34:05 +03:00
Michail Vourlakos
c333e11cdb update applets expanded tracking on every startup
--even when the views is recreated
2020-04-05 21:06:13 +03:00
Michail Vourlakos
4defd31669 fix compatibility with frameworks 5.38
--FrameSvgItem::mask() was introduced after
frameworks 5.58. Restore a bit the old
implementation

FIXED-IN:0.9.11
BUG:419678
2020-04-05 18:48:42 +03:00
Michail Vourlakos
f63a467b1e improvements for applet isExpanded tracking 2020-04-05 18:04:10 +03:00
Michail Vourlakos
8c3ed88a2f disable some debug messages 2020-04-05 17:02:20 +03:00
Michail Vourlakos
1adcbdb863 improve identify applets expanded state 2020-04-05 17:01:10 +03:00
Michail Vourlakos
aa3aba50d9 make blockHiding multiple state
--blockHiding now tracks down which event has
requested it and it can work flawlessly with
multiple events

BUG:419034
2020-04-05 14:59:26 +03:00
Michail Vourlakos
ef2650e711 systray,support context menus for SNI items
--SNI items are handling the context menu by their
own, so Latte code should not interfere

BUG:419263
FIXED-IN:0.9.11
2020-03-26 14:40:00 +02:00
Michail Vourlakos
a613bb49ba small improvements 2020-03-24 20:29:10 +02:00
Michail Vourlakos
90d1cedc1e fix context menu for applet if group plasmoid
--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
2020-03-24 20:08:27 +02:00
Michail Vourlakos
705e3d2d1e notforce reshow view when really removing from user
--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
2020-03-24 16:10:12 +02:00
Michail Vourlakos
70359602b8 apply activities at views andcurrentActivitychanges 2020-03-21 12:44:52 +02:00
Michail Vourlakos
4ad3880579 update PLASMAPANEL geometry immediate after hiding
--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.
2020-03-19 22:12:59 +02:00
Michail Vourlakos
87f6330816 slide in/out nicely when hideThickScreenGap
--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
2020-03-19 15:32:36 +02:00
Michail Vourlakos
338159c01f calculate better the screen edge margin 2020-03-19 13:47:04 +02:00
Michail Vourlakos
c9c61818a4 force kwinedge for behaveAsPlasmaPanels
--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.
2020-03-19 13:35:31 +02:00
Michail Vourlakos
43d91c9b63 drop QRect::setX/Y from all classes
--they can change the QRect width and height
and this is not the desired behavior.
moveLeft/Top are much better replacements.
2020-03-19 12:54:20 +02:00
Michail Vourlakos
73b3fb234f drop QRect::setX/Y from View
--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.
2020-03-19 12:45:23 +02:00
Michail Vourlakos
22a9416583 fixes for assigned layouts handling 2020-03-16 21:03:14 +02:00
Michail Vourlakos
2db252b769 fix warnings 2020-03-14 14:41:07 +02:00
Michail Vourlakos
d3a07b5371 improvements for multips views and sidebars 2020-03-07 21:24:06 +02:00
Michail Vourlakos
d1faaedc59 improve availableScreen..WithCriteria api
--improve its semantics in order to be more
understandable
2020-03-07 18:58:05 +02:00
Michail Vourlakos
e6ba47daab add more ignore visibility modes for calculations
--when a view is loaded its visibility mode is not
set already, in that case ignore it from all the
availableScreenGeometries calculations
2020-03-07 18:43:18 +02:00
Michail Vourlakos
0b2be421eb IMPORTANT:Multiple docks/panels in same edge
--Latte can now support multiple Views in the same screen
edge. Views as separated in THREE Layers of priorities.
1. Views from Shared Layouts have highest priority and they
are first to occupy a screen edge
2. Views that are set OnPrimary screen occupy a screen edge only
if there is NO other View from a Shared Layout applied already
3. Views that are Explicit to specific screens occupy a screen
edge only if there is NO PRIMARY view already loaded
2020-03-07 18:30:22 +02:00
Michail Vourlakos
719c852c8c update availableScree...WithCriteria functions
--use ignoredModes/Edges instead of accepted ones in order
to make code more readable and easy to understand
2020-03-07 15:36:39 +02:00
Michail Vourlakos
ab83bc5b2e fixes for BLUR in live editMode
--add also missing signal in Effects to updateEffects
when enabledBorders are changed
2020-03-05 22:11:06 +02:00
Michail Vourlakos
e2596b905c fix topbottom borders check in editmode 2020-03-02 19:01:51 +02:00
Michail Vourlakos
dd1a7b72c7 validate top/bottom borders for vertical panels
--make the top/bottom borders identification much
smarter in order to identify in they must be drawn.
There are many corner cases that these borders should
be drawn, for example when a vertical top aligned
panel is half shown its top border because of a
top panel
2020-03-02 18:56:27 +02:00
Michail Vourlakos
67d0ca76dd new wayland id discovery for helper windows 2020-03-02 09:39:57 +02:00
Michail Vourlakos
6bc604feca new wayland id discovery for settings windows 2020-03-02 09:39:57 +02:00
Michail Vourlakos
d5033d1bed improve latte wayland ids discovery
--introduce new waylad ids discovery implementation
for View::Positioner
2020-03-02 09:39:57 +02:00
Michail Vourlakos
47f79db2ec improve show/hide functions of visibilitymanager
--test the new code both for x11 and wayland and check
out that it does not create crashes or any other new
bugs
2020-03-02 09:39:57 +02:00
Michail Vourlakos
90df4f4f61 support new visibility mode for SideBars
--SideBar views are shown/hide ONLY WHEN the
user has requested to DO SHOW from external
applets, shortcuts and scripts
2020-03-01 18:20:23 +02:00
Michail Vourlakos
eb2d9a0190 fix blur for behaveAsPlasmaPanels 2020-03-01 18:18:45 +02:00
Michail Vourlakos
f689fc64e5 drop deprecated code
--no real reason to force shadows for
vertical real panels any more
2020-03-01 18:07:06 +02:00
Michail Vourlakos
72992b8bf5 fix missing calculation for behavingAsPlasmaPanel 2020-03-01 17:37:03 +02:00
Michail Vourlakos
9d30eb6257 support stick options for vertical views
--the user can now choose for vertical views to
stick their edges at the top or bottom screen edge
and ignore any top or bottom views accordingly. These
options are available in the Transparent Settings
area for vertical views and in advanced settings
mode.
2020-03-01 10:35:45 +02:00
Michail Vourlakos
1162b1e302 fix blur regions calculations
--do not send faulty blurred regions to KWin

BUG:417254
2020-02-08 10:53:56 +02:00
Michail Vourlakos
9cfdd253a8 second fix for Qt API WheelEvent breakage 2020-02-01 17:56:53 +02:00
Michail Vourlakos
5df6935c3c fix Qt API breakage from QWheelEvent 2020-02-01 17:46:08 +02:00
Michail Vourlakos
8e614468bc imrove applets scroll wheel activation
--the new implementation works at all cases even
when the ParabolicEffect MouseArea is not really
enabled (e.g. real panels)
2020-01-31 18:00:17 +02:00
Michail Vourlakos
8ab5779bcb compute blur area correctly on startup
--improve calculations for Effects area during startup
and at the same time when the dock is totally hidden
so it should not paint any effects area at all.

BUG:416928
FIXED-IN:0.9.9
2020-01-30 22:02:53 +02:00
Michail Vourlakos
4b1580c0bd move View::HelperWindows in their own directory
--at the same time create a base SubWindow class for
all window helpers used by Views. Now ScreenEdgeGhostWindow
and FloatingGapWindow use the same window implementation
2020-01-22 19:45:13 +02:00
Michail Vourlakos
a0582ac409 improve FloatingGapWindow creation/deletion
--create FloatingGapWindow the first time needed
from VisibilityManager if it is not already created.
--remove FloatingGapWindow when View::screenEdgeMarginEnabled
is disabled
2020-01-22 14:06:53 +02:00
Michail Vourlakos
3f68665300 introduce floating gap window
--this window responsibility is to check
if the mouse is still inside the real floating
gap and in such case to prevent the dock from
hiding
2020-01-22 00:28:07 +02:00
Michail Vourlakos
35ce0496ec periodically checking containmouse after slidein 2020-01-22 00:28:07 +02:00
Michail Vourlakos
b32171fe21 Revert "hide timer for floating views"
This reverts commit 706a80cae3.
2020-01-22 00:28:07 +02:00
Michail Vourlakos
87f2f7e644 dont update dock settings mask for compositing
--follow PlasmaQuick::Dialog:Popup window approach
and dont apply any mask when compositing is active
2020-01-16 19:26:54 +02:00
Michail Vourlakos
670c0cf405 remove debug message 2020-01-16 18:51:40 +02:00
Michail Vourlakos
b7e1f6b142 introduce new PlasmaTabStyle indicator
--this indicator is used only internally from Latte
in order to draw default plasma applets tab style
indicators when the user has chosen to not draw
latte specific indicators. A good example of its
usage is when the plasma theme contains tabbar
indicator which is used in applets and the Latte
overlayed icon applets need to use the same visual
with the regular plasma applets.
2020-01-13 21:53:49 +02:00
Michail Vourlakos
4809703e9f remove common global indicators options
--enabledForApplets and lengthPadding for indicators
has now moved to indicators responsibility to handle
--as a consequence usesPlasmaStyle has been removed
from indicators API. The corner cases that indicators
conflict with plasma theme applets should be handled
differently and in a different way
2020-01-13 21:53:49 +02:00
Michail Vourlakos
266499a485 support dialogs/background for dock settings wins
--use a different shadows manager for dialogs such as
dock settings window through the Latte::Corona class.
The new shadow manager is responsible to draw
"dialogs/background" shadows for windows instead of
the PanelShadows original class which is responsible
to draw "widgets/background" shadows
2020-01-12 23:51:46 +02:00
Michail Vourlakos
8b1526bc0d Revert "apply proper shadows for dock settings window"
This reverts commit 9e78fab4ce.
2020-01-12 22:23:54 +02:00
Michail Vourlakos
16a04684df blur dock settings window properly
--the new approach is always using the background
mask of the window from the FrameSvgItem background
applied.

BUG:416177
FIXED-IN:0.9.8
2020-01-12 21:56:46 +02:00
Michail Vourlakos
9e78fab4ce apply proper shadows for dock settings window
--copy and use plasmaquick/dialogshadow class from
plasma framework library

BUG:416175
FIXED-IN:0.9.8
2020-01-12 21:20:01 +02:00
Michail Vourlakos
34d6c2cd78 identify highest priority application launcher
--provide a new way to identify which application
launcher has the highest priority in order to be
triggered. When an application launcher applet
has a global shortcut assigned to it then that
application launcher applet has the highest
priority in order to be triggered through
"Super" global key.
2020-01-10 17:58:34 +02:00
Michail Vourlakos
411017c0f6 [wayland,crash]-fix showing advanced dock settings
--fix showing advanced settings window in order to update
the window geometry ONLY WHEN there are availableScreenGeometry
changes from Latte::View(s).
--As a side effect changing docks/panels location under wayland
when they have enabled their background blur has reduced crashes
during location changes.
2020-01-10 16:47:57 +02:00
Michail Vourlakos
706a80cae3 hide timer for floating views
--for floating views the hide timer can do
the trick about when to make the checks
that the view must become hidden. In floating
views should support different default and
current value because it should be greater
that the normal use cases.
2020-01-07 17:54:48 +02:00
Michail Vourlakos
87f86ebc75 trying to support masking for floating 2020-01-07 17:54:48 +02:00
Michail Vourlakos
f539512c8c improve View workarounds for kwin activities
--improve the new worksarounds in order to always
apply the activities that a view and its windows are
present when the workarounds were triggered from
kwin faulty behavior. The kwin faulty behavior is
that when any activity is paused then all Latte::Views
become hidden and lose their activities references.
The workarounds are timers that when they trace
a faulty visible state !visible are restoring the
normal behavior to views.
2020-01-04 19:57:54 +02:00
Michail Vourlakos
620cc32c47 restore signal registering that was lost 2020-01-04 19:35:57 +02:00
Michail Vourlakos
8946ded107 improve availableScreenR*WithCriteria functions 2020-01-04 19:21:10 +02:00
Michail Vourlakos
9d6e350a85 New ScreenEdge triggering behavior for RealFloats
--trying an alternative approach concerning real floating
Views and screen edge triggering. In such case the user
has triggered to show a REAL FLOATING VIEW, it is considered
normal from user point of view for the view to remain shown
until there is windows changed state or the mouse has
escaped the View main window area
2020-01-04 13:52:11 +02:00
Michail Vourlakos
a9d4f91c05 add inSlideAnimation flag for ViewPart::Positioner
--it can be used in order to enable/disable some codepaths
2020-01-03 21:18:01 +02:00
Michail Vourlakos
1dc154f932 track inLocationAnimation of View:Positioner 2020-01-03 21:18:01 +02:00
Michail Vourlakos
b129a8d880 improve real floating views screen edge activation
-- when the user hovers the screen edge there is a chance that
screenedgeghostwindow has become underneath the view. In such
case when the real floating window slides in the screenghostwindow
becomes unhovered faulty and it is destroyed afterwards. It is
much better if the screenedgeghostwindow in such case remains shown
until the mouse is not contained neither in the view or the screen
ghost window
-- expose screen edge ghost window thickness
2020-01-03 21:18:01 +02:00
Michail Vourlakos
e0e6f5f6b3 improve semantics for WM::setActiveEdge 2020-01-03 21:18:01 +02:00
Michail Vourlakos
efbd2a8276 floating:staying mouse on edge and not hiding
--when the floating view is a real panel window and
slides out-in with real animation if the user keeps
its mouse on the screen edge the view can remain
shown without sliding out
2020-01-03 21:18:01 +02:00
Michail Vourlakos
103de33c92 trying to implement real panels sliding in/ou 2020-01-03 21:18:01 +02:00
Michail Vourlakos
d0aa28a60d dock settings window not overlap plasma panels
--when dock settings window is shown it is good to
NOT overlap with plasma panels. Under X11 this is
possible because the real availableScreenGeometry
is exposed through QScreen.
2020-01-02 11:16:51 +02:00
Michail Vourlakos
0bea257086 add hidden debug option "kwinedges"
--a way to debug kwin edges behavior for
hidden Latte::View(s) screen edges windows
2020-01-01 19:40:54 +02:00
Michail Vourlakos
91b345e615 make indicators infrastructure smarter
--indicators are now tracked only based on their
installation path, that means that are updated
more precise when changes are applied and
at the same time views are recreated only when
the show the specific indicator that was changed
2019-12-31 15:49:53 +02:00
Michail Vourlakos
3108a73533 fixed compile with qt 5.9
FIXED-IN:0.9.7
BUG:415715
2019-12-30 23:57:14 +02:00
Michail Vourlakos
79705e9753 option to disable creenEdgeMargin for maximized
--improved settings for Floating windows in Behavior
tab and add a new option to hide ALL screen gaps meaning
both length screen and thickness screen gap when there
is a maximized window in the screen

BUG:415630
2019-12-29 14:09:37 +02:00
Michail Vourlakos
f6b8ed139d update PanelShadows to upstream code 2019-12-29 11:55:14 +02:00
Michail Vourlakos
70cb2f7fde new View::availableScreenRectChangedFrom triggers
--following the new design applied first at
View:availableScreenRegionChangedFrom instead of different
View parts to trigger directly m_corona relevant signal,
all View parts are triggering the View relevant signal
and as such the can be disabled all together
easily.
2019-12-28 14:07:57 +02:00
Michail Vourlakos
e5cab93fdb set minimumLength for ScreenEdgeGhostWindow
--set a minimumLength in order to avoid the indicator
to become TOO SMALL and not noticable. The minimum
length has been set to be 25% of the screen edge length
that the view as attached.
2019-12-27 19:41:05 +02:00
Michail Vourlakos
ccbf2c88fd crash fix:from unloading views
--when as Always Visible view was unloaded from
a CentralLayout because its Activity was closing
it was creating a crash. This patch fixes the
situation by releasing sensitive view signals
earlier.
2019-12-27 19:14:31 +02:00
Michail Vourlakos
f93bec8893 fixes for WindowsCanCover
--show immediately when view contains mouse
--hide only if view does not contain mouse
--never apply ByPassWM hint for WindowsCanCover
2019-12-27 14:20:31 +02:00
Michail Vourlakos
4cf929ea81 support containsMouse behavior for WindowsCanCover 2019-12-27 13:38:22 +02:00
Michail Vourlakos
dfd8bcdeca wayland improvements for WindowsAlwaysCover 2019-12-26 23:57:32 +02:00
Michail Vourlakos
c88329d278 x11:improve experience for Windows Always Cover
--simplify also some parts from windows calling window
manager values
2019-12-26 21:58:21 +02:00
Michail Vourlakos
d9e18794c8 simplify keepabove/below calling
--start a bit to work with "Windows Always Cover"
visibility mode
2019-12-26 21:10:11 +02:00
Michail Vourlakos
3554c4a006 improve some functionality used 2019-12-26 17:25:56 +02:00
Michail Vourlakos
72777d18c1 add functionality to latte window manager
--the Latte window manager has gained now
functions in order to set the window flags
properly and to update KeepAbove/KeepBelow
flags for windows
2019-12-26 16:53:37 +02:00
Michail Vourlakos
896afcc068 support screen edge margin for behaveAsPlasmaPanel 2019-12-24 20:35:48 +02:00
Michail Vourlakos
0ebef42513 add screenEdgeMargin and update border accordingly 2019-12-24 12:35:28 +02:00
Michail Vourlakos
d31d7afb9d dont wait for dock to show for activate shortcuts
--when the application launcher is not a popup then
we do not have to wait for the dock show we can execute
the activation code immediately
--when Latte activates an entry can now understand
if a popup is going to be shown in order to delay
the execution. If a popup is NOT going to show either
for a latte task or an applet then the code is executed
immediately

BUG:415417
FIXED-IN:0.9.6
2019-12-21 23:37:52 +02:00
Michail Vourlakos
111254e509 refactor:move qml handling from globalshortcuts
--all the qml handling code from globalshortcuts is
now moved to Latte::View::ContaimentInterface. This
way the code is cleaner and can be expanded easier.
2019-12-21 23:37:41 +02:00
Michail Vourlakos
fac638c156 remove obsolete fontmetrics libraries 2019-09-29 17:06:48 +03:00
Michail Vourlakos
59712ee129 dont use topleft corner at ghost win hiding mask
--this way the top-left screen corner is always
available even when left or top views are auto-hidden
or dodged
2019-09-08 11:20:14 +03:00
Michail Vourlakos
c515cd0216 update QRegion deprecated code 2019-09-08 00:09:56 +03:00
Yuri Chornoivan
1aaef7aa2b Fix minor EBN issues 2019-09-02 20:07:53 +03:00
Michail Vourlakos
8cf49b672c remove obsolete draggingStarted signals/slots
--draggingStarted signals/slots were used in order
to handle the active window dragging from empty areas.
The new approach ungrabs the mouse properly through
View relevant function and at the same time sends a
QEvent::Leave event to inform applets that the mouse
has left the view. This is enough in order to remove
any older draggingStarted workarounds and hacks.
2019-08-26 16:35:03 +03:00
Michail Vourlakos
057edb87f1 send QEvent::Leave for view when dragging started
--this way the applets in the view will be informed for
mouse exited the view window
2019-08-26 16:34:51 +03:00
Yuri Chornoivan
3a60d6f3b2 Fix minor EBN issues 2019-08-18 19:59:09 +03:00
Yuri Chornoivan
3f6d688dfe Try to fix build with Clang 2019-08-18 12:57:06 +03:00
Michail Vourlakos
f7d968ff6d update struts when normalThickness value changes
--the issue was pretty obvious when the user was
using a top view with thickness < 24px. and a
bottom view always visible. In that case the top
view struts on startup did not decrease below
at 24px.

BUG:410707
2019-08-08 09:51:11 +03:00
Michail Vourlakos
b078765d5c improve smartness for Unity case layout
--when a vertical view is in busy state and is touching
also a horizontal view that is fully transparent in
SMART mode then the visual result is not that good.
In that case it is better to show the view background.
The horizontal view background in that case can provide
three different states:
a) if the panel style for popups is activated then the
horizontal view will follow the plasma original style
b) if NOT [a] and solid background for touching windows
is enabled then solid background will be offered
c) if NOT [a] and NOT [b] then the isBusy state
transparency will be offered
2019-08-03 08:58:24 +03:00
Michail Vourlakos
ab9fbc3727 support touching horizontal view and isbusy
--trying to increase smartness for horizontal
and vertical views. In multiple layouts environment
a view can exist in cases that one or more of
the sided views that is touching it is NOT
transparent, it would be nice for those
cases the top or bottom  view to LOSE also
its transparency in order to not look
inconsistent.
2019-08-03 08:58:13 +03:00
Michail Vourlakos
3afd0eb643 set minimum hide timer interval 50ms
--when hide timer is set below 50ms. there are
cases that does not let the view to be shown after
a containmouse trigerring. By setting a minimum
value for the timer to 50ms this is fixed.

BUG:410370
2019-07-30 18:03:02 +03:00
Michail Vourlakos
18728015e3 fix configview.h reference
BUG:410371
2019-07-29 23:53:27 +03:00
Michail Vourlakos
b94f87f144 rename trackerwindows to windowstracker
-- in order to distinguish it from the neighbour
tracker classes
2019-07-16 20:58:48 +03:00
Michail Vourlakos
9c0ff5d2a8 fix drag sensitivity when KWin edges are used 2019-07-16 14:27:17 +03:00
Michail Vourlakos
9a10cd1e26 fix SharedLayout VisibilityManager::isCurrent state
--when KWin edges are used in a SharedLayout then the
all view Layout::isCurrent() function must be used
otherwise the layout is not identified properly as
current based on different layouts per activities
2019-07-16 14:08:47 +03:00
Michail Vourlakos
c94843c9e6 KWin issue #2,hiding windows when activies stopped
--in such case under x11, the winIds of the visible
Latte windows are changed and as such the windows
tracking mechanism becomes broken. The code introduced
tries to track the case the update the WM::ignoredWindows
properly
2019-07-16 14:08:47 +03:00
Michail Vourlakos
c5b1e9bbf5 x11:drop QWindow::setVisible() function
--this function creates irrelevant crashes even
under x11 environment... Dropped in favour of
show()/hide() functions that seem to not create
any issues
2019-07-15 19:39:21 +03:00
Michail Vourlakos
3a465782e1 wayland:improve latte windows id discovering 2019-07-15 19:15:53 +03:00
Michail Vourlakos
1ef328bd3a avoid wayland crashes from QWindow::setVisible 2019-07-15 15:48:36 +03:00
Michail Vourlakos
c85d24ac37 use WM:IgnoredWindows infrastructure for wayland
--improvements for IgnoredWindows infrastructure
all over the relevant classes
2019-07-15 14:53:40 +03:00
Michail Vourlakos
79f392723e wm:support ignored windows
--x11 implementation is in place and wayland
case must be updated accordingly
2019-07-13 14:51:26 +03:00
Michail Vourlakos
dac692bec4 dont block updating hidden state for drag enter 2019-07-10 16:33:14 +03:00
Michail Vourlakos
8033db04d3 increase KWin Ghost window thickness
--this way the KWin Edges ghost window behaves
more accurate and more predictable
2019-07-10 16:24:38 +03:00
Michail Vourlakos
9e9003870b show view immediately for DragEnter
--when the user had activated KWin Edges and the
Show Timer was too high when the View delayed a
lot to show for DragEnter events
2019-07-10 16:23:06 +03:00
Michail Vourlakos
ba6460e919 update indicators runtime
--fixes to signals in ViewParts in order to avoid
crashes. Currently the recreateView approach is used
in order to reload indicators runtime dynamically.
The "View::setSource" approach does not reload the
indicators properly
2019-06-20 17:42:49 +03:00
Michail Vourlakos
85e49d41bf improve view recreation code 2019-06-20 11:21:12 +03:00
Michail Vourlakos
caefba4576 recreate views when indicators update 2019-06-20 10:57:59 +03:00
Michail Vourlakos
a9310a3de3 disable KWin edges for ByPassWMHint
--KWin edges do not support trigerring
above fullscreen windows
2019-06-20 10:25:18 +03:00
Michail Vourlakos
a7abf5d309 update background svg file when plasmatheme changes 2019-06-16 17:44:02 +03:00
Michail Vourlakos
0e96168742 update backgroundContrastEffect mid values
--the previous approach was disabling the background
contrast effect at all times except when the background
opacity was 100%, the new approach considers the background
opacity value and provide mid values to be applied.
That means that 0% background opacity disables the background
constrast visual effect, 100% applies the background contrast
visual effect at its maximum values and in between the mid
values for background contrast effect are applied
2019-06-16 15:31:37 +03:00
Michail Vourlakos
91a9e7c0c5 improvements for effects area and painting 2019-06-15 16:12:15 +03:00
Michail Vourlakos
3c5c59e149 Revert "consider mask thickness for struts"
This reverts commit a4764024db.
2019-06-15 15:43:32 +03:00
Michail Vourlakos
359b120360 Revert "remove workaround for struts gap"
This reverts commit 137cd36547.
2019-06-15 15:43:12 +03:00
Michail Vourlakos
137cd36547 remove workaround for struts gap
--consider always the maskThickness when
settings struts in order to avoid gaps
at all cases
2019-06-15 10:55:38 +03:00
Michail Vourlakos
a4764024db consider mask thickness for struts 2019-06-15 09:59:08 +03:00
Michail Vourlakos
1051372e04 expose to qml builtin activity/vds switching
--tested that this fixes also the Latte crash
on exit as PagerModel is not used any more in
Latte internal code
2019-06-10 17:49:21 +03:00
Michail Vourlakos
29bbba1730 improve View::currentScreenWindowsTracking 2019-06-09 02:51:00 +03:00
Michail Vourlakos
ef3db56ce7 fix Tracker::AllScreens init signaling on startup 2019-06-09 02:33:01 +03:00
Michail Vourlakos
353f7119cc move Tracker::Enabled to View::WindowsTracker
--previously it was found in the consumers of
View::WindowsTracker (CurrentScreenTracker and
AllWindowsTracker)
2019-06-08 18:11:02 +03:00
Michail Vourlakos
4cc4bfd6de REFACTOR WindowsTracker to provide more information
--View::WindowsTracker now provides all the time
information about CurrentScreen and AllScreens!
This way all consumers (Latte::Containment, Applets etc.)
can choose whatever suits them best.
2019-06-08 17:36:14 +03:00
Michail Vourlakos
7deef41015 move View::WindowsTracker to own directory 2019-06-08 16:20:43 +03:00
Michail Vourlakos
96c081e076 remove View from TrackedGeneralInfo 2019-06-08 11:12:25 +03:00
Michail Vourlakos
c2bfda46d3 make WindowsTracking activity filtering accurate 2019-06-08 01:38:27 +03:00
Michail Vourlakos
c0e3004717 add LastActiveWindow debug records
--in DebugWindow
2019-06-04 20:08:30 +03:00
Michail Vourlakos
e5673a9cfa fix type for DodgeMaximized 2019-06-03 19:20:06 +03:00
Michail Vourlakos
3f3560aab5 update dodgeAllWindows on startup properly 2019-06-03 19:16:48 +03:00
Michail Vourlakos
2c33ad52b6 support file paths for Indicator::Resource::svgs 2019-06-03 19:09:08 +03:00
Michail Vourlakos
149812080f move View/Indicator in its own directory 2019-06-03 18:36:45 +03:00
Michail Vourlakos
f75605d78d introduce Resources for Indicators 2019-06-03 18:31:42 +03:00
Michail Vourlakos
342d4a1a00 move window funcionality to lastactivewindow 2019-06-01 10:55:03 +03:00
Michail Vourlakos
53d24fe2c6 forward LastActiveWindow to QML 2019-05-31 19:12:34 +03:00
Michail Vourlakos
dbed45b2c7 introduce TrackedInfo and LastActiveWindow 2019-05-31 16:58:42 +03:00
Michail Vourlakos
99ec9cb2fd move WM:Trackers in its own directory 2019-05-31 14:52:16 +03:00
Michail Vourlakos
b251ea7b8e protect visibility destructor
--this protects a crash when closing Latte
immediately after startup
2019-05-27 10:57:16 +03:00
Michail Vourlakos
7cd3b6201d remember the last created ConfigView per layout 2019-05-25 17:40:29 +03:00
Michail Vourlakos
beb0100644 fix some applets animations flickerring
--especially when the user drags something over
the Latte::View and afterwards drops it
2019-05-25 14:46:19 +03:00
Michail Vourlakos
86e645c720 position properly dropped applets and urls in view 2019-05-17 21:49:31 +03:00
Michail Vourlakos
1ef4de0da8 VASTLY IMPROVE dragging experience
--when dragging a new applet over the view
the responsiveness is now improved vastly
--the new architecture uses two different
DragAndDropAreas. One which is the old one
and is used when dragged launchers, urls and
separators. The second is used only when
applets are dragged into the view
--the visuals for adding launchers/applets have
been improved and a circular visual is preferred
now instead
2019-05-17 21:28:39 +03:00
Michail Vourlakos
3789f3c178 improve adding applets through dragging responsive
--fix all events identifications from DragMove and
DragExit etc. in containment::qml part and all drags
flags are calculated only at DragEnter! This fixes
the DragMove signaling and all DragMove signals are
sent correctly.
It needs to be fixed also for Tasks plasmoid because
every time the mouse hovers the Tasks Plasmoid then
the DragMove signals are NOT SENT as they should.
2019-05-16 23:20:51 +03:00
Michail Vourlakos
ffced101e1 apply visibilitymanager::struts when are needed 2019-05-14 17:56:22 +03:00
Michail Vourlakos
f63a0ad658 update/improve hack part of screenghostwindow
--related to KWin faulty behavior for visibility
2019-05-14 17:40:44 +03:00
Michail Vourlakos
ebeabb1033 increase View::timers kwin hack 2019-05-14 17:12:36 +03:00
Michail Vourlakos
a5168c3a2a REFACTOR:Introduce WM:WindowsTracker
--this is a single and very important class
that handles all windows tracking and management
for ALL VIEWS at ALL ACTIVE LAYOUTS
2019-05-11 21:19:28 +03:00
Michail Vourlakos
945c6e50e2 remove deprecated m_views from AbstractWMInterface 2019-05-11 16:12:03 +03:00
Michail Vourlakos
a295352514 limit WM::setViewExtraFlags calls 2019-05-11 16:06:53 +03:00
Michail Vourlakos
ad788130ab REFACTOR:add WindowSystem namespace 2019-05-11 15:47:22 +03:00
Michail Vourlakos
a661fbb032 refactor:drop LAYOUTSMANAGER apis moved to SYNCHER 2019-05-11 09:51:47 +03:00
Michail Vourlakos
a6b8fbcaff consider view::hidden state after slide-out 2019-05-11 09:08:18 +03:00
Michail Vourlakos
c6cd3f4685 move layout connections in the view
--any view and view::containment() signals that
are related to layout are now moved in the
View::setLayout() in order to be reinitialized
properly when the view changes to another
layout
2019-05-09 23:45:52 +03:00
Michail Vourlakos
6248a0ccae refactor:move schemecolors under "wm" folder 2019-05-09 18:12:46 +03:00
Michail Vourlakos
a27ff3ec48 REFACTOR:Update LayoutManager to Layouts::Manager
--create "layouts" own directory in order to host
all LAYOUTS management/control code and classes
2019-05-09 17:12:57 +03:00
Michail Vourlakos
29157f4636 refactor:rename managedLayout to layout/viewLayout 2019-05-09 00:13:17 +03:00