add overview based on kwin's placement algorithm

kwin/src/plugins/private/expolayout.cpp

kwin's overview placement algorithm first sorts by window height(2nd key center_y),

turning it into a one-dimensional row partitioning problem.

(limit binary search iteration to guarantee termination)

Then it sorts within the rows based on window center_x.

(first sort fallback rev creation_id
for stablility)
This commit is contained in:
yuiiio 2026-04-15 08:35:26 +09:00
parent 6df6a092ba
commit 41ff854483
11 changed files with 909 additions and 1 deletions

View file

@ -48,6 +48,7 @@ enum lab_node_type {
LAB_NODE_ROOT,
LAB_NODE_MENUITEM,
LAB_NODE_CYCLE_OSD_ITEM,
LAB_NODE_OVERVIEW_ITEM,
LAB_NODE_LAYER_SURFACE,
LAB_NODE_UNMANAGED,
LAB_NODE_ALL,