Commit Graph

94 Commits (675bdf5f7d5aac6d70717cec2bd6962536241d3e)

Author SHA1 Message Date
Michail Vourlakos abcacface8 window belongs in a screen whenever touching it
--whenever a window geometry is touching a screen geometry
is now considered that this window belongs to that screen.
This way a window could look active to more that one screens.
This way all last active window considerations now work
properly even when the window center is out of screen.
3 years ago
Michail Vourlakos e25988ff93 fix broken initialization of windows tracking
--some improvements of 0.10.5 broke the windows tracking
initialization. This is a fix in order for windows tracking
to be enabled/disabled properly per dock/panel during
startup phase.
3 years ago
Michail Vourlakos 88603f6aaf more startup improvements
--visibility: simplify and improve code
for restoring and saving values
--enable visibility mode early on the startup
sequence
--enable windows tracking after startup phase
has ended
--windows tracking respect also view geometry
changes and not only window changes from the
desktop environment
3 years ago
Michail Vourlakos 1ea3130573 ignore window states when kwin is showing desktop
--this way every dock/panel and also applets that
are using the LastActiveWindow API behave like there
is no shown window
3 years ago
Michail Vourlakos 4d3c491b84 update lastactivewindow based on changed signal 3 years ago
Michail Vourlakos b839283d5b support X11::GlobalScaling properly
--as it appears many users are using Plasma GlobalScaling
in conjuction with PLASMA_USE_QT_SCALING. This commit
provides plenty of fixes for that scenario in order to
make things workable.
--adjust X11::InputMask based on devicePixelRatio()
--adjust X11::GtkFrameExtents based on devicePixelRatio()
--adjust View::absoluteGeometry() based on devicePixelRatio()
--adjust WM::Tracker based on devicePixelRatio()
--adjust WM::AbstractInterface based on devicePixelRatio()

BUG:444222
FIXED-IN:0.10.3
3 years ago
Michail Vourlakos f1d435a38e major:update LastActiveWindow implementation
--new implementation keeps a more consistent history.
Each LastActiveWindow(LAW) now keeps track of all windows
that are related to its view even when these windows are not
currently shown. This way inactive windows history is
consistent and can be used from applets/visibility modes
more appropriately. VDs/Activities that are not
the current one(s) do not delete records from history
any more. Their respected windows are recorded and
flagged as NOT SHOWN, waiting this way to be valid
again after Activities/VDs changes.
4 years ago
Michail Vourlakos 29df650645 drop WinTracker::availableScreenGeometry calcs
--Views WindowsTracker in using screen geometry only to
identify which windows are in the same view screen has nothing
to do with availablescreengeometry. This is why it is
dropped and replaced by View::screenGeometry() value
4 years ago
Michail Vourlakos f10ae3e239 layout:update default color scheme ref properly 4 years ago
Michail Vourlakos 6444cc6e2d provide access to scheme colors wm:engine
--this is going to be used in order from layouts
4 years ago
Michail Vourlakos 600d78afca release properly scheme objecs on destruction 4 years ago
Michail Vourlakos 2aec29a855 activate dragged window on start
--this way the window is activated properly
and its activation is not canceled from move
action

BUG:437679
4 years ago
Alexander Lohnau 505379ed04 Use spdx syntax for all files 4 years ago
Michail Vourlakos 4e2c6da514 activate dragged window before moving
BUG:437679
4 years ago
Ömer Fadıl Usta 03e9c6c954 Reorder inits to Fix wrong initialize problem and fixes for string compares 4 years ago
Michail Vourlakos 1e8ec1380d track lastActiveWindows for OnAllActivities layout
--fix the typo that identifies when a view in present
OnAllActivities, {0} that is.

BUG:431763
4 years ago
Michail Vourlakos f27f938042 support XDG_CONFIG_PATH for app code
BUG:428210
4 years ago
Michail Vourlakos 5af3036613 fixes for identifying Unity vertical view showing
--more specific identifying properly when a vertical
view is shown and is touching a top or bottom view
that has requested to be fully trasparent when no
maximized window exists
4 years ago
Michail Vourlakos 3689cc406d retrieve available screen space through activityid 4 years ago
Michail Vourlakos 3b3388d673 rename SideBar to SidebarOnDemand
--improve semantics all over the place now
that we provide two different sidebar
visibility modes
5 years ago
Martijn Vogelaar 2e4f7da4c2 Introduction and implementation of the SidebarAutohide
as discussed in #19.
5 years ago
Michail Vourlakos 0c577d68da fix active window maximized in wm tracking
--consider also the maximized window is touching
view edge case
5 years ago
Michail Vourlakos b264854a98 Dodge visibility mode now ignores edge touches
--The new implementation for snapping needed to remove
the touching view edge from touching algorithm. The
windows trakers now provide two separate values for each
touching.
----First value is for regular window touches for which
their window geometry intersects with view published
absoluteGeometry
----Second value is for windows that are touching
view edge without intersecting with view geometry
5 years ago
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.
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 6e4779e6ab require new official Latte library 5 years ago
Michail Vourlakos ac3ccb5b98 try to support a public liblatte library 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 ce245ab253 ignore some windows in LastActiveWindow
--LastActiveWindow is providing information to
applets thus special windows that contain
the following flags:
skipTaskBar AND (skipPager OR skipSwitcher)
these windows can be totally ignored.
In such window case the LastActiveWindow used
are provided.

BUG:419384
5 years ago
Michail Vourlakos 4d3b5e86e8 major refrest for wm(s), remove consts
--introduce also windows whitelist that can
be used in order to force tracking in some
windows
5 years ago
Michail Vourlakos e951aa67b2 protect updating LastActiveWindow appData
--LastActiveWindow application data should be updated
only when the last active window id is equal with
the sent application data. Otherwise we may show
Application name and icon for totally irrelevant
window.

Bug was first reported at:
https://github.com/psifidotos/applet-window-title/issues/89/

FIXED-IN:0.9.10
5 years ago
Michail Vourlakos f4c255952f disable some debug messages 5 years ago
Michail Vourlakos e0c04a9c6f import:dont update view:local_geometry when hidden
--if this does not apply then local geometry are not valid
when views become hidden
5 years ago
Michail Vourlakos d3a07b5371 improvements for multips views and sidebars 5 years ago
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
5 years ago
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
5 years ago
Michail Vourlakos 5363433b00 ignore fullscreen windows from Plasma and Latte
--drop isPlasmaDesktop flag for windows and use the
new wm approach for plasmaIgnoredWindows
5 years ago
Michail Vourlakos ad61f897af improve semantics 5 years ago
Michail Vourlakos b681836232 expose WindowAbilities from LastActiveWindow API
--expose isClosable,isMinimizable, isMaximizable etc..
through the LastActiveWindow API for applets or containments
to use
5 years ago
Michail Vourlakos 3b1676fb93 update caller for availablescreenrectwithcriteria 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 9dd798477e improve criteria for side panels dyamic touching
--Latte panels when they touch each other are informing
each other in order to provide consistent appearance. For
example the Unity mode where a top panel and a left panel
exist at the same time. In such case if the left panel is
INBUSY background state then the top panel is informed and
because inBusy state also. This way the top border of left dock
background does not look out of place. ON THE OTHER hand if
the left dock is hidden because the use has chosen auto-hide
visibility mode or any of the dodge(s) choices then the top
panel does not have to stay in isBusy state. The patch fixes
this by applying this behavior only when the left dock is shown
e.g. the mouse has entered the dock or the dodge mode is not
activated

BUG:415347
FIXED-IN:0.9.6
5 years ago
Michail Vourlakos 2bd037f79a fix wrong criteria for isMaximized state 5 years ago
Michail Vourlakos 7c77270f0b consider as isMaximized state only full screen case
--window manager provides two more states isMaxHorizontally,
isMaxVertically. These states can be ignored and be
considered as isMaximized only when both of these states
are valid

FIXED-IN:0.9.6
5 years ago
Michail Vourlakos 6b5f4a952a dont drag/maximize windows from different desktops
--the last active window codepath provides a way to
drag and maximize/restore the last active window. This
should not occur when the last active window is not
in the current desktop and activity.

BUG:414089
FIXED-IN:0.9.5
5 years ago
Michail Vourlakos f63200988e ignore Plasma panels in Latte heuristics 5 years ago
Michail Vourlakos 4ff84b4bde optimize delayed application data updating
--the previous code was updating the delayed application
data for each instance of lastactivewindow separately.
The new code is implementing this at the central
WM::WindowsTracker and just informs last active windows
to update their values
5 years ago
Michail Vourlakos d5b7694d4d update application data after 1500ms from startup
--when an application is tracked from the lastactivewindow
infrastructure it is updating the application name/icon
1500 ms after its first startup in order to fix apps cases
where they update their StartupWMClass a bit delayed

BUG:413671
5 years ago
Michail Vourlakos fdb002d919 optimize last active window color scheme update 5 years ago
Michail Vourlakos 6a7c959e6a expose colorScheme to lastActiveWindow(s)
--applets can now use the color scheme from lastActiveWindow
objects in order to paint some of their elements
5 years ago