[Bug]: Redesign tab bars ignore clicks on Linux: hidden chat layers keep window drag regions

Abierto Apto para principiantes
#31,551 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

@EhsanulHaqueSiam ya está trabajando en esto.

Desde el 5/11/2026.

  • #31554 de @EhsanulHaqueSiam — abierto
  • #31585 de @juliusmarminge — abierto

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
82/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
electron, typescript
Área
desktop, frontend

Línea de trabajo

Empieza por layout/SurfaceHost.tsx y revisa cómo reciben sus clases de encabezado las capas de chat ocultas que se mantienen; luego sigue chatPaneHeaderClassName hasta el encabezado real del chat y PaneThumbnail. Reproduce el problema cambiando entre pestañas de chat y haciendo clic en la pestaña del terminal o en + en Linux. Se considera terminado cuando los encabezados ocultos ya no intercepten los clics y esos controles respondan de forma fiable.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

What happened

In the redesign desktop app (stack branch maria/redesign/6-workspace-panes, #28845), tabs and + buttons in the top bar only respond to clicks some of the time. With a chat on the left and a terminal on the right, the terminal pane's Terminal tab and its + (Add panel surface) ignore clicks completely after switching chat tabs once. Chat tabs and + in the chat's own tab bar also miss clicks, depending on where you click.

Diagnosis

Chats you are not looking at stay mounted in a hidden layer (layout/SurfaceHost.tsx: !visible && "pointer-events-none inset-0 [content-visibility:hidden]", plus inert). The layer's header still has drag-region. That includes the real ChatPaneHeader of a kept chat, and the header of a PaneThumbnail prepared off screen for the overview, since both use chatPaneHeaderClassName.

pointer-events, inert and content-visibility:hidden don't affect Electron's window drag regions. Blink still collects the hidden header's -webkit-app-region: drag box: the layer is inset-0, so the strip runs the full workspace width. Electron applies drag and no-drag rectangles in DOM order, and the hidden layers come after the visible pane, so the hidden strip covers the visible tab bars. A click there goes to the window manager as a window move and never reaches the page. Clicks only get through where one of the hidden header's own no-drag buttons happens to line up. That's why it feels random.

Only this branch is affected: SurfaceHost's kept chat layers don't exist on main or on stack branches 1 to 5.

Steps to reproduce
  1. On Linux (seen on Hyprland, Wayland), run the desktop app from maria/redesign/6-workspace-panes (vp run dev:desktop).
  2. Open a project chat with a few thread tabs, and open a terminal so it sits as a pane to the right of the chat.
  3. Click a different chat tab, so the previous chat moves to a hidden layer.
  4. Click the terminal pane's Terminal tab or its +. Nothing happens. Clicking empty space in the chat tab bar and then some tabs also fails.
Version

maria/redesign/6-workspace-panes @ ada1a8b67b (desktop dev build)

Environment

Omarchy (Arch Linux) 7.2.15, Hyprland 0.57.1 (Wayland), Electron 44.10.1, Node 26.13.0. Not checked on macOS or Windows; drag regions work the same way there, so they are likely affected too.

Evidence
# Drag-region boxes in the page (CDP), after one chat tab switch. CSS px; window is 2003 px wide.
live chat header      [260, 7, 862 x 41]   drag
hidden chat header    [260, 7, 1731 x 41]  drag   (ancestor: inert, inset-0 [content-visibility:hidden])
terminal tab bar      [1130, 7, 861 x 41]  none   <- under the hidden strip

# Real mouse clicks (uinput, not synthetic CDP events), recording pointerdown in the page:
sidebar resize handle (256,600)  -> page got: ["Resize Sidebar"]
terminal "Terminal" tab (1188,24) -> page got: []
terminal "+" (1241,24)            -> page got: []

# Same clicks after removing the hidden header's drag region:
terminal "Terminal" tab (1188,24) -> page got: ["Terminal"]
terminal "+" (1241,24)            -> page got: ["Add panel surface"]
Related issues

#10661 and #11573 were Linux click bugs caused by drag regions over controls in other parts of the app; both are closed and involve different code. #19079 (right sidebar tab close button needs repeated clicks in macOS fullscreen) is on main, which doesn't have these layers.

Fix applied or workaround

Nothing on the machine beyond a temporary style injected over CDP while testing. Reloading the window clears it until a chat goes into the background again. A fix PR follows: hidden headers drop drag-region.

Filed by

EhsanulHaqueSiam, following the t3 triage playbook

Lenguaje dominante
TypeScript
Estrellas
24.8k
Forks
6.4k
Merge medio
10 h 25 min
PR fusionados (30 d)
113

Preparar el entorno

Abrir en Codespaces

Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de pingdotgg/t3code

Todos los issues de pingdotgg/t3code

Issues similares

Más issues de TypeScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.