1
0
mirror of https://github.com/KDE/latte-dock.git synced 2024-12-25 19:21:41 +03:00
Commit Graph

104 Commits

Author SHA1 Message Date
Michail Vourlakos
3b3388d673 rename SideBar to SidebarOnDemand
--improve semantics all over the place now
that we provide two different sidebar
visibility modes
2020-07-29 00:02:50 +03:00
Michail Vourlakos
0784c0dacd improve View isFloatingPanel semantics 2020-07-28 23:50:05 +03:00
Martijn Vogelaar
2e4f7da4c2 Introduction and implementation of the SidebarAutohide
as discussed in #19.
2020-07-28 15:49:55 +00:00
Michail Vourlakos
22acd85d9c struts calculations at screen_edge coordinates
--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.
2020-07-19 17:13:50 +03:00
Michail Vourlakos
cf1cb1ca8e always now Views when needed
--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.
2020-07-18 19:42:20 +03:00
Michail Vourlakos
81bc74f49d dont recreate view unnecessary
--FrameExtents are working fine with margins 0,0,0,0
and Plasma 5.19.3
2020-07-18 19:27:47 +03:00
Michail Vourlakos
0b8fa321bc dont crash when panels change location 2020-07-16 09:44:44 +03:00
Michail Vourlakos
e6e68d86c3 update FrameExtends for View::typeChanged
--during startup a panel type may become a dock type
and vice versa. We make sure that frameExtents
are updated accordingly when that happens.
2020-05-26 16:41:53 +03:00
Michail Vourlakos
84a5eecf79 update struts in Single layout mode earlier 2020-05-23 20:04:37 +03:00
Michail Vourlakos
236dd2c3b9 update frameExtents for View::locationChanged 2020-05-16 21:51:16 +03:00
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
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
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
6e4779e6ab require new official Latte library 2020-04-22 21:10:17 +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
bde33f98a9 remove blockHidingEvent on SideBar startup 2020-04-15 16:47:15 +03:00
Michail Vourlakos
8c3ed88a2f disable some debug messages 2020-04-05 17:02:20 +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
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
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
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
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
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
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
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
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
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
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
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