Desktop app on RTL Windows locale: browser/preview pane renders a duplicate "ghost" layer over the chat
Environment
- Claude Desktop 1.22209.3.0 (MSIX, Microsoft Store)
- Windows 11 Pro, build 26200
- Windows display language: Hebrew (OS mirrors the app window: RTL frame, window controls on the left)
Steps to reproduce
- Set the Windows display language to Hebrew (or Arabic) so the app window is RTL-mirrored.
- Launch Claude Desktop (clean start, no DevTools open, no scripts injected).
- Open a Claude Code session and open the built-in browser / preview pane (e.g. have Claude preview an HTML file or start a dev server).
What happens
A duplicate copy of the pane's content is drawn floating over the chat area, in addition to the correctly-placed pane. The ghost copy:
- disappears when the pane has focus (e.g. clicking a menu inside the browser pane),
- returns as soon as focus moves elsewhere (clicking back into the chat),
- persists with a single tab open, across app restarts.
This reproduces on a completely clean app restart with no DevTools scripts injected.
Suspected cause
The behavior is consistent with the embedded webview (live WebContentsView) and its snapshot/placeholder layer being positioned in different coordinate spaces -- one mirrored for the RTL window frame, the other not -- so they never overlap and both are visible.
Workaround
Launching the app with LTR chrome eliminates the ghost entirely:
Claude.exe --lang=en-US --force-ui-direction=ltr
(Confirmed working on the machine above -- the window unmirrors and the pane renders once.)
Related context
We maintain a small RTL companion for Hebrew-speaking users of Claude Desktop (DevTools-injected CSS/dir tagging, no app modification): https://github.com/Sabarhealth/claude-rtl-companion -- the ghost pane reproduces with and without it, but proper RTL locale handling in the desktop app would make both workarounds unnecessary. Happy to provide screenshots, diagnostics, or test builds.
🤖 Generated with Claude Code on the user's behalf
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗