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

オープン
#564 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

@mattchristenson がすでに取り組んでいます。

2026年9月30日 から。

  • #568 @mattchristenson による — オープン

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
35/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
停滞
技術スタック
javascript
領域
desktop

調査の方向性

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.

索引モデルが issue の本文から書いたものです。

説明

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).

主要言語
JavaScript
スター
1.3k
フォーク
112
PR マージ指標
30日以内にマージされた PR はありません

環境構築

このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

forge-ext/forge のほかの issue

forge-ext/forge の issue をすべて見る

似ている issue

JavaScript の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。