Tab strip: keep tab widths stable while closing tabs quickly (match Chrome behaviour)

Open
#53 0 comments 0 reactions 0 assignees View on GitHub

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
Domain
desktop, frontend

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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from jackwener/Kaze

All issues in jackwener/Kaze

Similar issues

More JavaScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.