1
0
mirror of https://github.com/KDE/latte-dock.git synced 2025-03-10 04:58:16 +03:00

34 Commits

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
2022-05-09 20:35:45 +03:00
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
2022-01-16 13:38:13 +02:00
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
2021-12-12 14:39:46 +02:00
Michail Vourlakos
45825996d4 screensdialog:add screens removal functionality 2021-06-06 08:57:30 +03:00
Alexander Lohnau
505379ed04 Use spdx syntax for all files 2021-05-27 15:01:00 +00:00
Michail Vourlakos
8ba60ea89a viewsdialog:show active screens with bold 2021-04-10 13:45:45 +03:00
Michail Vourlakos
b29a8fa9b3 provide screens options in views dialog 2021-04-04 12:25:20 +03:00
Michail Vourlakos
e7eeb4f9fd introduce ViewData and FIRSTSCREENID 2021-03-20 18:57:28 +02:00
Michail Vourlakos
5bc5e684b5 protect from invalid screen connectors 2021-03-13 17:16:10 +02:00
Michail Vourlakos
76b6317f9e validate screen ids and store them properly
BUG:434343
2021-03-13 17:12:06 +02:00
Michail Vourlakos
c70ffb5b92 automatic update screen geometries in screen pool 2021-02-17 15:12:27 +02:00
Michail Vourlakos
a01c18a551 update geometrics for screenpool records 2021-02-17 14:20:44 +02:00
Michail Vourlakos
ad0f9901b7 provide single screens data table 2021-02-17 13:37:02 +02:00
Michail Vourlakos
41ebee5a71 update screenpool api 2021-02-17 12:24:36 +02:00
Michail Vourlakos
864a3520f2 remove no needed primary connector logic 2021-02-17 12:14:46 +02:00
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.
2020-03-24 15:59:36 +02:00
Michail Vourlakos
10939d410c Views Report Information for inactive layouts 2019-07-15 00:05:10 +03:00
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
2019-07-14 13:59:02 +03:00
Michail Vourlakos
dcfcc1b442 show screens information through Settings menu 2019-07-13 17:08:00 +03:00
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
2019-05-01 18:52:03 +03:00
Michail Vourlakos
c735792c30 REFACTOR:replace all "foreach" statements 2019-04-05 17:17:10 +03:00
Michail Vourlakos
2099b8ed36 add headers comments for all c++ files 2018-12-02 02:05:52 +02:00
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
2018-07-24 22:25:19 +03:00
Michail Vourlakos
acb77c6cd4 update header files and move files around 2018-02-03 11:37:09 +02:00
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.
2018-01-08 19:23:53 +02:00
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
2017-06-30 11:41:17 +03:00
Johan Smith Agudelo Rodriguez
44d85a4905 WARNING: Assertion failed in wayland 2017-06-20 16:59:11 -05:00
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
2017-06-11 23:55:34 +03:00
Johan Smith Agudelo Rodriguez
5226b6adce code formatted 2017-03-12 15:15:06 -05:00
Michail Vourlakos
b88170caaa support always on primary case
-- :) fantastic behavior from Latte...
2017-02-27 01:20:30 +02:00
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
2017-02-27 01:20:30 +02:00
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
2017-02-27 01:20:29 +02:00
Michail Vourlakos
9259a28cde improvements to add/remove docks on screen demand 2017-02-27 01:20:29 +02:00
Michail Vourlakos
d4da25e2e6 add a screen pool for multi-screens 2017-02-27 01:18:27 +02:00