Commit Graph

34 Commits (c6882e79c4a84bedb6d2cbaa76d835732bbc426e)

Author SHA1 Message Date
Michail Vourlakos b1d57051c2 wayland:support Plasma primaryscreen protocol
--use ScreenPool as reference for primary screen.
The new code uses PrimaryOutputWatcher class from
Plasma Shell in order to keep track of primary
screen at all cases.

BUG:448418
FIXED-IN:0.11.0
3 years ago
Michail Vourlakos 60095bba3b fix #96,FEATURE:AllScreens and AllSecondaryScreens
--This is a HUGE FEATURE and so important for multi-screens
users. It is introduced as one single commit because it
reimplements plenty of infrastructure changes and it will
be easier to identify newly introduced bugs.
--Users can now choose for their docks and panels to belong
at various screen groups. The first two screen groups introduced
are AllScreens and AllSecondayScreens. In the future it might
be possible to provide CustomScreensGroup that the user will
be able to define specific screens in which a dock or panel
should be always present.
--Current solution specifies an Original dock or panel and clones/copies
itself automatically to other screens. So docks and panels in other screens
are just real docks and panels that reference themselves to original
docks and panels.
--Clones are destroyed during layout startup and are automaticaly
recreated. It is suggested to export your layouts through the
official Layouts Editor in order to share them because in that case
clones are not included in the new generated layout file. If in any
case you do not this and you share your layout with any previous
versions then your clones will just appear as separate docks and
panels that belong to specific screens.
--Automatic syncing was introduced in order to keep up-to-date
the configuration of Original docks and panels with their referenced
Clones.
--Automatic syncing currently works for all docks and panels settings,
for all normal applets configurations and for all subcontaiments
configuration such as systrays.
--Automatic syncing does not work for applets inside subcontainments
such as Group Plasmoid. In such case it is suggested to configure
your applets inside your Group Plasmoid in the original dock or panel
and afterwards to trigger a recreation for the relevant clones
--Manual recreation of clones is easily possible by just choosing
the dock or panel to be OnPrimary or OnSpecificScreen and rechoosing
afterwards the AllScreensGroup or AllSecondaryScreensGroup
3 years ago
Michail Vourlakos ca83433ce0 multiscreen:disable struts under x11 when overlap
--when multiple screens placement have edges that overlap
with each other, at that edges struts must be disabled
to provide much better windows behavior. For example when
dragging a window between such screens and there is
an AlwaysVisible panel or dock between them.

BUG:445595
FIXED-IN:0.10.5
3 years ago
Michail Vourlakos 45825996d4 screensdialog:add screens removal functionality 4 years ago
Alexander Lohnau 505379ed04 Use spdx syntax for all files 4 years ago
Michail Vourlakos 8ba60ea89a viewsdialog:show active screens with bold 4 years ago
Michail Vourlakos b29a8fa9b3 provide screens options in views dialog 4 years ago
Michail Vourlakos e7eeb4f9fd introduce ViewData and FIRSTSCREENID 4 years ago
Michail Vourlakos 5bc5e684b5 protect from invalid screen connectors 4 years ago
Michail Vourlakos 76b6317f9e validate screen ids and store them properly
BUG:434343
4 years ago
Michail Vourlakos c70ffb5b92 automatic update screen geometries in screen pool 4 years ago
Michail Vourlakos a01c18a551 update geometrics for screenpool records 4 years ago
Michail Vourlakos ad0f9901b7 provide single screens data table 4 years ago
Michail Vourlakos 41ebee5a71 update screenpool api 4 years ago
Michail Vourlakos 864a3520f2 remove no needed primary connector logic 4 years ago
Michail Vourlakos 25cfd25477 fix plasma geometries publish in multi-screen
--when a screen becomes inactive then its last values
for available rect and reqions should also be removed
from the recorded values.
5 years ago
Michail Vourlakos 10939d410c Views Report Information for inactive layouts 6 years ago
Michail Vourlakos 7954a3ac39 improve Screens Report
--the new report identifies for all your layouts
when a screen has not been assigned any docks/panels.
That can help user to clean up the ScreensConnectors
if wants to
6 years ago
Michail Vourlakos dcfcc1b442 show screens information through Settings menu 6 years ago
Michail Vourlakos cf0f22b44d fix crash,protect connector() calls
--connector calls must be done only when we
are sure that a screen id has already been
assigned

BUG: 407128
6 years ago
Michail Vourlakos c735792c30 REFACTOR:replace all "foreach" statements 6 years ago
Michail Vourlakos 2099b8ed36 add headers comments for all c++ files 6 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 acb77c6cd4 update header files and move files around 7 years ago
Michail Vourlakos dd8c8271b6 IMPORTANT: move logic from corona to layout
--refactoring code for #808...
Latte gets prepared for multiple layouts running
at the same time.
7 years ago
Michail Vourlakos 67d1f1d4f9 fix #565,full dynamic reload the layout
--the new layout is loaded without closing
Latte and with properly loading globalSettings
and screen from the layout file. The layout
new files are updated when Latte is closing
8 years ago
Johan Smith Agudelo Rodriguez 44d85a4905 WARNING: Assertion failed in wayland 8 years ago
Michail Vourlakos 97b3c4f854 update algorithms for docksCount,freeEdges
--the new algorithms are using QScreen* values
from dockviews instead of the containment screen()
which can not be trusted at the first minutes
of a dock creation
8 years ago
Johan Smith Agudelo Rodriguez 5226b6adce code formatted 8 years ago
Michail Vourlakos b88170caaa support always on primary case
-- :) fantastic behavior from Latte...
8 years ago
Michail Vourlakos 3b3c6a0f47 drop dock primary screen behavior from plasma
--this cleans the plasma behavior for the
primary screen that was creating a mess.
The dock "on primary" state can now be implemented
through Latte without breaking things
8 years ago
Michail Vourlakos 03fc80439a fixes for plasma behavior and screens ids
--there are cases that screens instead of returning
correct screen names the return names like
"0:0". These are totally ignored in order to not
break the screen ids database
8 years ago
Michail Vourlakos 9259a28cde improvements to add/remove docks on screen demand 8 years ago
Michail Vourlakos d4da25e2e6 add a screen pool for multi-screens 8 years ago