Commit Graph

92 Commits (642b524cc7a02dfd35af6dd117c4b60344a33b72)

Author SHA1 Message Date
Michail Vourlakos 642b524cc7 refactor:move currentScreen to View::Positioner
--rename also currentScreen to currentScreenName
for better semantic representation
6 years ago
Michail Vourlakos 186a641444 fix crash under wayland 6 years ago
Michail Vourlakos 3e9071f5f5 refactor: move shadows handling to View::Effects 6 years ago
Michail Vourlakos f13e83ffb7 refactor:move theme handling to extendedtheme class 6 years ago
Michail Vourlakos 0794c0e84f refactor:blockAnimations moved to View::Effects
--rename blockAnimations to animationsBlocked
6 years ago
Michail Vourlakos 44006f2fe6 refactor:move dockTransparency to View::Effects
--rename dockTransparency to backgroundOpacity
6 years ago
Michail Vourlakos 885e438143 refactor:colorizerSupport moved to View::Effects
--renamed also from colorizerSupport to colorizerEnabled
6 years ago
Michail Vourlakos 3de7993b8d refactor:move shadow to Effects
-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
6 years ago
Michail Vourlakos 3a0a95e6a9 refactor: rename properties in View::Effects
--effectsArea became "rect"
--maskArea became "mask"
6 years ago
Michail Vourlakos 825144a92e refactor:move Positioner to View:: namespace 6 years ago
Michail Vourlakos 47c3d6fb41 refactor:move effects and mask at own dock class 6 years ago
Michail Vourlakos 71d648437f move dock positioning code into its own class 6 years ago
Michail Vourlakos 05c85dcd6d improvements for containsMouse code style 6 years ago
Michail Vourlakos 24806d8909 drop TaskManager for drag/double click panel
--use the visibilitymanager in order to drag
and maximize/restore an active window. Update
also the wayland functions for these features.
6 years ago
Michail Vourlakos e63a43afe5 enable requestMove through the visibilitymanager 6 years ago
Michail Vourlakos 578623836b make dock settings window smarter for secwindow
--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.
6 years ago
Michail Vourlakos b8ad6fceeb drag a maximized window from panel 6 years ago
Michail Vourlakos 92ce3f15c1 introduce plasma theme extended
--this is going to be a class that will
provide all the extended info of a plasma
theme such as roundness, dark/light color
schemes
6 years ago
Michail Vourlakos 8d014c9e6e active windows that touch panel have higher priority 6 years ago
Michail Vourlakos f6b4aa55cf support background painting based on window scheme
--support painting based on the active window scheme.
Added a schemecolors class for this and updated
abstractwindowinterface to provide tracking for windows
color schemes.
6 years ago
Michail Vourlakos 37dbab99bf remove no needed public api from visibilitymanager 6 years ago
Michail Vourlakos 0bab344682 fixes for multi-screen behavior
--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
6 years ago
Michail Vourlakos be7bbfe848 dont call syncGeometry when some cases
--dont call costly syncGeometry when drawShadows
externally is called. In such case only updating
shadows/borders is needed.
6 years ago
Michail Vourlakos f955c6a40c improve reconsiderScreens code for multi-screens
--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
6 years ago
Michail Vourlakos 64a40429a4 option/define who will be used at global shortcuts
--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
6 years ago
Michail Vourlakos 09fe5e385b on startup explicit dock faulty moving onPrimary
--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
7 years ago
Michail Vourlakos 203c740980 IMPORTANT FIX:show dodged dock at corner cases
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
7 years ago
Michail Vourlakos cc0e0e7c47 simplify dodge(s) code and comment it 7 years ago
Michail Vourlakos 66817695fe raise docks when there isnt any active window
--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
7 years ago
Tobias C. Berner 156accc34f Fix build on FreeBSD by including <array>.
Summary:
latte-dock-0.8.0/app/dock/dockview.h:367:44:
    error: implicit instantiation of undefined template 'std::__1::array<QMetaObject::Connection, 4>'
    std::array<QMetaObject::Connection, 4> connectionsManagedLayout;
                                           ^

Reviewers: #freebsd, mvourlakos, davidedmundson

Reviewed By: davidedmundson

Subscribers: plasma-devel

Tags: #plasma

Differential Revision: https://phabricator.kde.org/D14534
7 years ago
Michail Vourlakos 9e53fa727b update to latest panel shadows 7 years ago
Yuri Chornoivan 7323068f36 Fix minor EBN issues 7 years ago
Michail Vourlakos 87094a6fe7 dont draw panel shadows when theme doesnot provide
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
7 years ago
Michail Vourlakos b2f1f98b57 remove deprecated code from old multi-screens arch
--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.
7 years ago
Michail Vourlakos bb8835f156 identify maximized window screen differently
--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
7 years ago
Michail Vourlakos 78b41eff91 use current transparency to update effects
--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
7 years ago
Michail Vourlakos 7bceb7e4b7 Identify snapped windows independent of screen
--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
7 years ago
Michail Vourlakos 03b469eff5 IMPORTANT: Update multi-screen codepage!!!
--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
7 years ago
Michail Vourlakos 393342ad9e revert one fix for blur effect
--limiting the qregion returned for blur effect
it created in some cases broken visuals concerning
the bluring of the background
7 years ago
Michail Vourlakos 7a9c0504db improve effects area calculations
--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
7 years ago
Michail Vourlakos 6efeaa7d51 update code to new astyle conditions 7 years ago
Michail Vourlakos cfce12d6ed fix #1005,add timer to fix freeze
--make less intrusive the repositioning
of the screen edge ghost windows
7 years ago
Michail Vourlakos be845b5ba2 missing return statement 7 years ago
Michail Vourlakos eb7b0ec497 fix a crash from ghostscreenedges
--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
7 years ago
Michail Vourlakos a87d094986 fix crash from ghostedge in X11
--when unloading a layout under X11
when MultipleLayouts are used sometimes
a crash was occuring.
7 years ago
Michail Vourlakos 745b9ea075 dont apply too early blur effect
dont delay the corona destruction under wayland
because that creates a crash with kwin effects

BUG: 392890
7 years ago
Michail Vourlakos 94fa4177ac set hidden ghost window mask to minimum 7 years ago
Michail Vourlakos 5e4134b1ee improve visibility should consider per screen
--maximized windows shouldnt provide solidness
at docks using improve visibility in different
screens.
7 years ago
Michail Vourlakos f287d37ac0 add a dock geometry validator
-- 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.
7 years ago
Michail Vourlakos ba2acef2c1 fix warning 7 years ago