[BUG] Desktop: scrolling does nothing over a `Client` region in a plugin pane
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separately for multiple bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
In the desktop app, a plugin pane doesn't scroll while the pointer is over a Client element. Over the pane's Box and Text content, scrolling works.
The Client in my pane is a tab bar, 3 rows tall, at the top of a pane whose content is taller than the pane. With the pointer over the tab bar, the pane stays put. With the pointer on the rows below, the pane scrolls.
So a list drawn in a Client wouldn't scroll either, and a plugin has to keep scrollable content in native elements.
What Should Happen?
Scrolling over a Client should scroll the pane that holds it, as it does over Box and Text. A Client that wants wheel input for itself could receive it as a pointer event and opt in to handling it, with the pane scrolling otherwise.
Error Messages/Logs
None. The Client still gets down, move, enter and leave pointer events.
Steps to Reproduce
- In a plugin, draw a
Panewhose content is taller than the pane, with aClientof a few rows at the top. Mine draws a row ofBoxtabs and handlesonPointer. - Open the plugin's pane in a Code-mode session in the Claude desktop app, docked so its content overflows.
- Put the pointer over the rows below the
Clientand scroll. The pane scrolls. - Put the pointer over the
Clientand scroll. The pane doesn't move.
Claude Model
Not model-related.
Is this a regression?
Don't know.
Claude Code Version
2.1.295 (the engine the desktop app runs), Claude desktop app 2.31226.1
The CLI is on 2.1.296. I haven't tested 2.1.296 in the desktop app.
Platform
Anthropic API
Operating System
macOS 15.7.3
Terminal/Shell
Claude desktop app (Code mode)
Additional Information
Related: #100890 asks for a tab group element. A Client works as a tab bar today, which is how this came up.
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗