refactor: unify kick_app/kick_tab_group_member into a single kick_window
Windows now own the scene wiring uniformly; a tab is a pure list head of identical kick_window structs with no privileged "main" member. X11 and xdg paths share one map/focus/claim/destroy tail, the tab-group and external-to-own-tab behaviours ride on a single origin flag, and tab membership is just window list order. Bugs fixed in the port: - pick_successor took -1 as a truthy prefer_right, returning NULL when the rightmost tab died and tearing the session down; the parameter is now a bool so the misuse cannot recur. - reorder_active_tab wrote a tab back into its old slot because wl_list_insert() inserts AFTER its anchor; the middle-slot case now anchors on the predecessor. - claim_xdg_window left the freshly created scene tree ENABLED (unlike the X11 path's explicit disable), so a still-black window of the active tab read as "already drawn" and its first map skipped the seat keyboard enter -- the fix that makes forwarded keys (and the client fullscreen mirror) reach the client in nested sessions. - the active tab's first map no longer re-announces a fresh active transition: the boot crown already owns the tab, so prefer_one stable active_count under load. - restored the "[x11] member associate app=%d" log for grouped windows so the old log contract is preserved.
This commit is contained in:
parent
469e31115b
commit
be45053631