Skip to content

fix(desktop): status bar right-click keeps its own menu (Fixes #89953) - #89979

Closed
aydnOktay wants to merge 2 commits into
NousResearch:mainfrom
aydnOktay:fix/desktop-statusbar-context-menu-trigger
Closed

fix(desktop): status bar right-click keeps its own menu (Fixes #89953)#89979
aydnOktay wants to merge 2 commits into
NousResearch:mainfrom
aydnOktay:fix/desktop-statusbar-context-menu-trigger

Conversation

@aydnOktay

Copy link
Copy Markdown
Contributor

Summary

  • Right-clicking the desktop status bar always opened the window-verbs fallback, so Show in status bar (and the context meter) was unreachable.
  • Radix asChild Slot lets the child's data-slot win. The footer is data-slot=statusbar, so the coordinator's [data-slot=context-menu-trigger] guard never matched and stopPropagation ate the Radix menu.
  • Stamp a dedicated data-hermes-context-menu-trigger on ContextMenuTrigger (after props) and bail on that marker. Any asChild surface with its own data-slot is covered, not just the status bar.

Fixes #89953.

The app-wide coordinator only bailed on data-slot=context-menu-trigger. Radix Slot lets the child's data-slot win, so the status bar footer (data-slot=statusbar) never matched and right-click always opened the window-verbs fallback. Stamp a dedicated marker on ContextMenuTrigger after props and guard on that.

Fixes NousResearch#89953.
@alt-glitch alt-glitch added type/bug Something isn't working P3 Low — cosmetic, nice to have comp/desktop Electron desktop app (apps/desktop/*) labels Aug 19, 2026
This was referenced Aug 19, 2026
This was referenced Aug 19, 2026
@OutThisLife

Copy link
Copy Markdown
Collaborator

Thanks @aydnOktay — you picked the right layer, and your fix is what ships.

Three PRs landed on #89953 independently, so I consolidated them into #90507. Your two commits are cherry-picked there with authorship intact: the primitive stamps the dedicated marker and the coordinator bails on it, so every asChild surface with its own data-slot is covered rather than just the status bar. The two competing fixes both patched the call site — one exempting data-slot="statusbar" in the coordinator, one renaming the footer's data-slot — and either would have reopened the bug the next time someone wrote an asChild child with its own slot.

One change: I dropped the first of your two tests. It hand-wrote <footer data-slot="statusbar" data-hermes-context-menu-trigger=""> into the DOM and asserted the coordinator honored it, which passes even if ContextMenuTrigger never stamps the marker — the test supplied the attribute itself. Your second test is the one that matters and it stays, paired now with @huklaa's integration test that right-clicks the real status bar against the real coordinator. Both fail with the marker removed.

I also swept the other nine ContextMenuTrigger call sites: the status bar is the only one broken today, and context-menu-trigger is the only Slot-stamped data-slot that any production code uses as a runtime gate, so I left the tooltip/dropdown/dialog triggers alone rather than marking them speculatively.

Superseded by #90507.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp/desktop Electron desktop app (apps/desktop/*) P3 Low — cosmetic, nice to have type/bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: Desktop status bar right-click always shows the fallback menu — "Show in status bar" (and the context meter) unreachable

3 participants