Bug: Windows in a stacked group are hidden without a trace

Aperta
#564 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

@mattchristenson ci sta già lavorando.

Dal 30/9/2026.

  • #568 di @mattchristenson — aperta

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
35/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Ferma
Stack tecnologico
javascript
Ambito
desktop

Direzione di ricerca

The focus handler calls updateStackedFocus() and updateTabbedFocus() without the window, causing early returns; locate these in the extension JS source. Run the reproduction scenario scenarios/17_stack_tab_switching.py from forge-repro to observe the bug. Implement an i3-style title list bar per acceptance criteria; done means N title rows show for N windows with fixed-order Super+J/K navigation.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Problem. A stacked group (Super+Shift+S) places each window one header height lower than the one before, and relies on the windows' own title bars peeking out above the focused one. Only the windows before the focused one peek out. Every window after it is completely covered, with nothing showing that it exists. With focus on the first window of a stack of three, the stack looks like a single window.

stack of three, first window focused: main vs fix

Cause. A 2022 change, "Improve stacking order when focused" (07ac521), was meant to move the focused window to the end of the stack on every focus change, so every title would show above it. But the focus handler calls updateStackedFocus() and updateTabbedFocus() without the window, so both return immediately. The behaviour never took effect. (Enabling it as designed would also reorder the stack on every focus, which breaks Super+J/K: they would bounce between two windows.)

Desired outcome. An i3-style stack:

  • a list of every window's title at the top of the group, one row per window, in a fixed order;
  • the focused window below the list, with its row highlighted;
  • every other window one click on its row, or Super+J/K, away.

Acceptance criteria.

  • A stack of N windows shows N title rows. None is hidden, whichever window is focused.
  • The focused window is on top, below the list. No window covers the list.
  • The focused window's row is highlighted, and follows focus changes (keys, clicks, Alt+Tab).
  • Clicking a row focuses that window; the close button on a row closes it.
  • Super+J/K move through the stack in list order, and the order doesn't change.
  • Switching stacked ↔ tabbed changes the bar between a list and tabs, with no leftover bar.
  • With title bars turned off (showtab-decoration-enabled), stacks keep today's cascade.

Reproduction: scenarios/17_stack_tab_switching.py (17.3, 17.6).

Lingua principale
JavaScript
Stelle
1.3k
Fork
112
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di forge-ext/forge

Tutte le issue di forge-ext/forge

Issue simili

Altre issue su JavaScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.