Commit Graph

174 Commits (069455be4e0831b12fceed7c94bd86a98426ef97)

Author SHA1 Message Date
Michail Vourlakos d6fc66a7a3 user option for hiddenConfigWindowsAreDeleted
--when hidden configuration windows are deleted memory
consumption is improved and provides much lower values
--when hidden configuration windows are not deleted
memory consumption increases but their responsiveness
for hiding/showing is instantly
5 years ago
Michail Vourlakos 1dcf799d42 a way to not delete hidden config windows 5 years ago
Michail Vourlakos 66f8cce6d9 introduce Layouter Debug mode
--really handy and beautiful in order to confirm the
calculations that are valid. Already a bug was found
for ParabolicEffect. There is 1px difference between
hovering Tasks and Applets
5 years ago
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
5 years ago
Michail Vourlakos 381675ac57 reduce kconfig.sync() calls
--improves startup times in some cases because
it does not write to disk that often.
5 years ago
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.
5 years ago
Michail Vourlakos 3e17f718ee dont block hiding for #debugwindow#(s) 5 years ago
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.
5 years ago
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
5 years ago
Michail Vourlakos 1e48d053f7 fix crash when switching layouts
-- the faulter was containmentinterface that was
calling containment()->applets() during view
destroying phase
5 years ago
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
5 years ago
Michail Vourlakos 9be7822b98 upgrade to LatteApp.Interfaces containment access 5 years ago
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
5 years ago
Michail Vourlakos 2526ab7e17 rename to MemoryUsage::LayoutsMemory
--easier to read in the code as that type
provides:
MemoryUsage::SingleLayout
MemoryUsage::MultipleLayouts
5 years ago
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
5 years ago
Michail Vourlakos e368d03222 fix crash from configwindow when switching layouts 5 years ago
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
5 years ago
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
5 years ago
Michail Vourlakos 0046c904d1 View:Move expanded applets code to View::Interface 5 years ago
Michail Vourlakos fa65462dea move View::deactivateApplets to extendedInterface 5 years ago
Michail Vourlakos 50c136b56f provide View::ExtendedInterface to qml parts 5 years ago
Michail Vourlakos c333e11cdb update applets expanded tracking on every startup
--even when the views is recreated
5 years ago
Michail Vourlakos f63a467b1e improvements for applet isExpanded tracking 5 years ago
Michail Vourlakos 1adcbdb863 improve identify applets expanded state 5 years ago
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
5 years ago
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
5 years ago
Michail Vourlakos 70359602b8 apply activities at views andcurrentActivitychanges 5 years ago
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
5 years ago
Michail Vourlakos 338159c01f calculate better the screen edge margin 5 years ago
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.
5 years ago
Michail Vourlakos 22a9416583 fixes for assigned layouts handling 5 years ago
Michail Vourlakos 2db252b769 fix warnings 5 years ago
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
5 years ago
Michail Vourlakos d5033d1bed improve latte wayland ids discovery
--introduce new waylad ids discovery implementation
for View::Positioner
5 years ago
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.
5 years ago
Michail Vourlakos 9cfdd253a8 second fix for Qt API WheelEvent breakage 5 years ago
Michail Vourlakos 5df6935c3c fix Qt API breakage from QWheelEvent 5 years ago
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)
5 years ago
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
5 years ago
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.
5 years ago
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.
5 years ago
Michail Vourlakos 620cc32c47 restore signal registering that was lost 5 years ago
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
5 years ago
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
5 years ago
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
5 years ago
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.
5 years ago
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.
5 years ago
Michail Vourlakos dfd8bcdeca wayland improvements for WindowsAlwaysCover 5 years ago
Michail Vourlakos c88329d278 x11:improve experience for Windows Always Cover
--simplify also some parts from windows calling window
manager values
5 years ago
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
5 years ago
Michail Vourlakos 0ebef42513 add screenEdgeMargin and update border accordingly 5 years ago
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
5 years ago
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.
5 years ago
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.
6 years ago
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
6 years ago
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
6 years ago
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.
6 years ago
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
6 years ago
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
6 years ago
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
6 years ago
Michail Vourlakos 1ef328bd3a avoid wayland crashes from QWindow::setVisible 6 years ago
Michail Vourlakos c85d24ac37 use WM:IgnoredWindows infrastructure for wayland
--improvements for IgnoredWindows infrastructure
all over the relevant classes
6 years ago
Michail Vourlakos 79f392723e wm:support ignored windows
--x11 implementation is in place and wayland
case must be updated accordingly
6 years ago
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
6 years ago
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.
6 years ago
Michail Vourlakos c2bfda46d3 make WindowsTracking activity filtering accurate 6 years ago
Michail Vourlakos 7cd3b6201d remember the last created ConfigView per layout 6 years ago
Michail Vourlakos beb0100644 fix some applets animations flickerring
--especially when the user drags something over
the Latte::View and afterwards drops it
6 years ago
Michail Vourlakos 86e645c720 position properly dropped applets and urls in view 6 years ago
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
6 years ago
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.
6 years ago
Michail Vourlakos ebeabb1033 increase View::timers kwin hack 6 years ago
Michail Vourlakos a295352514 limit WM::setViewExtraFlags calls 6 years ago
Michail Vourlakos a661fbb032 refactor:drop LAYOUTSMANAGER apis moved to SYNCHER 6 years ago
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
6 years ago
Michail Vourlakos a27ff3ec48 REFACTOR:Update LayoutManager to Layouts::Manager
--create "layouts" own directory in order to host
all LAYOUTS management/control code and classes
6 years ago
Michail Vourlakos 29157f4636 refactor:rename managedLayout to layout/viewLayout 6 years ago
Michail Vourlakos f43d1b56c7 fix crash concerning WORKAROUND for KWIN
--KWin hides some Views without reason when
Activities are closed under Multiple mode.
This crash fixes these kind of crashes.
6 years ago
Michail Vourlakos 1f14405e63 REFACTOR: rename Active TO -> CENTRALLAYOUT 6 years ago
Michail Vourlakos 913c35523f move views between Active/SharedLayouts
--the move to layout option under View Settings
window now can enable the user to move view
between Active and Shared Layouts
6 years ago
Michail Vourlakos 5fbdf19b78 fixes for edit mode 6 years ago
Michail Vourlakos 417f992831 move intersect function to WindowsTracker 6 years ago
Michail Vourlakos 9ce7ba35bb simplify mouse signals from Latte::Views 6 years ago
Michail Vourlakos 6505e8797f send mouse signals from View to containment
--this is side-way path for mouse events and
more specific the mouse pressed, released
events to be sent from parent window to its
qml containment part. This way it is possible
to keep the original plasma applet behavior
such as original plasma tooltips and provide
Latte specific functionality such as animated
clicks from indicators.

NOTE: An investigation - testing took place in
order to check if this approach could be also used
for mouseMove events to be used for applets parabolic
effect. The result was that this was not possible because
there were too many signals and too much calculations
too identify for which applet the signal belonged to.
The parabolic effect was not fluid in that case and
could not catch up.
6 years ago
Michail Vourlakos b35fa94307 reduce availableScreenGeometry calls 6 years ago
Michail Vourlakos 6620cf54bd plenty fixes updates for MultipleTopLayouts 6 years ago
Michail Vourlakos dc9553b3ca fix crashes from loading/unloading layouts 6 years ago
Michail Vourlakos bbddfd3d48 REFACTOR:move code from Active to GeneralLayout
--huge refactor in order to split the logic of the
Layout file. One of small steps in order to end at
the following logic:
AbstractLayout->GeneralLayout->InterfacedLayout

InterfacedLayout->NormalLayout
InterfacedLayout->OnTopLayout

PresentedLayout, that will contain references for
one ActiveLayout and one OnTopLayout and will
act as a class to provide useful information to
layoutManager and all other classes that want
to work with Views.

GeneralLayout will gain a storage object
for all STORAGE properties that require
a CORONA to work
6 years ago
Michail Vourlakos 7d0905e379 refactor: rename Layout to ActiveLayout
--first steps to abstract the Layout code in
different classes
6 years ago
Michail Vourlakos 8b3920ef64 fix indicators warnings when removing a view 6 years ago
Michail Vourlakos c735792c30 REFACTOR:replace all "foreach" statements 6 years ago
Michail Vourlakos 555fc966b0 activate config windows under wayland environment
--add heuristic method in wayland interface in order to
return the internal id of a window by using its appId
and its geometry
6 years ago
Michail Vourlakos 0b90411b1d IMPORTANT: All new Indicators architecture
--this huge commit contains all the changes needed
in order for Latte to load Indicators dynamically
from their own packages
6 years ago
Michail Vourlakos cab2055279 adjust secondary config win to new design
--secondary config window now follows the primary
config window design. Config windows now are just
simple windows !AboveAll and are activated from
Latte::View on demand. This way we can now have
demonstration of the parabolic effect during
editMode at all times
6 years ago
Michail Vourlakos 1dba8d1841 block requestActivate() for wayland
--requestActivate is not supported under wayland
6 years ago
Michail Vourlakos e9e0c04198 fix wayland crash when hiding config window 6 years ago
Michail Vourlakos fabf6f44d2 show configuration windows only for one view
-- for each layout only one dock should show its configuration windows
otherwise we could reach a point that because a settings window
is below another Latte View its options are not reachable
6 years ago
Michail Vourlakos 83b5b2323a fix calculations for left subtracked mask 6 years ago
Michail Vourlakos 736d068a44 improve masking for config windows
--now config windows are masked properly in order to
accessible to all of their areas. By design the config
windows are trying to be below the main view, this is
why masking is needed in order to work properly and not
having areas that can not be clicked/accessed because
of the top Latte View
6 years ago
Michail Vourlakos 37ca5f1663 restore config windows behavior to previous state
--approach the problem of showing parabolic effect properly
during edit mode in a different way. The Latte View now
on Enter event raises itself
6 years ago