Tab strip: keep tab widths stable while closing tabs quickly (match Chrome behaviour)
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 45/100
- Issue type
- Feature
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- electron, javascript
Research direction
Start by locating the tab-strip implementation and the code that recalculates tab widths when a tab closes; the issue does not name specific files or tests. Compare the close behavior with the described Chrome interaction, then check whether widths remain stable during rapid closes and re-flow after the pointer leaves or a short idle period.
Written by the indexing model from the issue text.
Description
What happens
When closing several tabs in quick succession (e.g. holding Cmd+W or clicking the close button repeatedly), the remaining tabs immediately re-layout and change width after each close. The tab under the cursor keeps jumping, so the next click often hits the wrong tab.
Expected behaviour (Chrome)
Chrome freezes the tab-strip widths while you are closing tabs rapidly: the closed tab's slot collapses but the other tabs keep their rendered width, so the next tab's close button stays exactly under the cursor. Widths only re-flow when the mouse leaves the tab strip (or after a short idle).
Actual behaviour
Each close immediately redistributes the available width across the remaining tabs, shifting their positions under the mouse.
Why it matters
Rapid tab closing is a common cleanup pattern; Chrome's "delayed resize" exists precisely so the close button stays put. Matching it would make mass-closing in Kaze much less error-prone.
Environment
- Kaze: 0.34.1 (Electron 45.3.0)
- Chromium: 156.0.8078.96
- macOS: 27.2.0, arm64 (Apple Silicon)
- Tab layout: top strip
- Dominant language
- JavaScript
- Stars
- 197
- Forks
- 6
- Avg merge
- 1d 14h
- Merged PRs (30d)
- 1
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from jackwener/Kaze
-
Difficulty 2/5 1-3 hours Newbie friendliness 83/100
-
使用代理插件似乎无法代理所有网络行为Open
Difficulty 3/5 1-2 days Newbie friendliness 52/100
-
Difficulty 4/5 3-5 days Newbie friendliness 48/100
-
Difficulty 4/5 3-5 days Newbie friendliness 43/100
-
Difficulty 5/5 Over a week Newbie friendliness 42/100
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
libnoname/noname#4626 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 84/100
Maintainers usually reply within 1 day
-
ai-driven-qa bug Cosmetic
Difficulty 1/5 Under an hour Newbie friendliness 92/100
Maintainers usually reply within 1 day
-
ai-driven-qa bug Cosmetic
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
linagora/twake-drive#4584 ·
Maintainers usually reply within 1 day
-
Add: YTS Yamagata TVOpenchannels:add check:passed
Difficulty 1/5 Under an hour Newbie friendliness 82/100
Maintainers usually reply within 1 day