Explore "View query" modal: Ctrl+click on "Open in SQL Lab" navigates in-app instead of opening a new tab
Maintainers usually reply within 1 day
@schizophrenicmaniac is already working on this.
Since Oct 3, 2026.
- #44933 by @schizophrenicmaniac — open
Assessment
- Difficulty
- 1/5
- Estimated time
- Under an hour
- Newbie friendliness
- 92/100
- Issue type
- Bug
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- react, typescript
- Domain
- frontend
Research direction
Start in superset-frontend/src/explore/components/controls/ViewQueryModalFooter.tsx at the footer button handler, then compare its modifier handling with ViewQuery.tsx. Verify the change with the React Testing Library coverage for Explore controls mentioned in the issue. Done means Ctrl+click opens SQL Lab in a new tab on Windows/Linux while Cmd+click continues to work on macOS.
Written by the indexing model from the issue text.
Description
Bug description
The "Open in SQL Lab" button in the View query modal footer only treats metaKey as "open in new window". On Windows/Linux, where Ctrl is the modifier users expect, Ctrl+click navigates within the app. The sibling ViewQuery component already treats metaKey || ctrlKey as equivalent.
Steps to reproduce: Explore -> chart menu -> View query -> hold Ctrl and click "Open in SQL Lab". It navigates the current tab to SQL Lab instead of posting to a new window. (Cmd+click works on macOS.)
Expected: Ctrl+click behaves like Cmd+click.
Where
superset-frontend/src/explore/components/controls/ViewQueryModalFooter.tsx L90: onClick={({ metaKey }) => openSQL(Boolean(metaKey))}
superset-frontend/src/explore/components/controls/ViewQuery.tsx L141: if (domEvent.metaKey || domEvent.ctrlKey) {
Suggested fix
onClick={({ metaKey, ctrlKey }) => openSQL(Boolean(metaKey || ctrlKey))}
Found by
Found while adding React Testing Library coverage for Explore controls (all line numbers are against master at bc3698b5d6).
- Dominant language
- Python
- Stars
- 75.2k
- Forks
- 18.5k
- Avg merge
- 2d 12h
- Merged PRs (30d)
- 607
Getting set up
Starts the project's dev container in your browser, under your own GitHub account.
- Ships a Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from apache/superset
-
[MCP] BrowserHelloMiddleware (welcome page to MCP) intercepts every browser GET, breaking OAuth flows of MCP_AUTH_FACTORYPossibly taken @MikolajBalcerek claimed this 2 days ago. Open#bug
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
apache/superset#45390 · 1 comment ·
Maintainers usually reply within 1 day
-
get_time_filter Jinja macro returns 500 when the chart has a custom SQL filterPossibly taken @SEPURI-SAI-KRISHNA claimed this 5 days ago. Open🦾 ai-candidate
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
apache/superset#45269 · 1 comment ·
Maintainers usually reply within 1 day
-
Nightly full-repo pre-commit fails: mypy Filter|OrFilter narrowing gaps in semantic-layer testsPossibly taken @sadpandajoe claimed this 5 days ago. Openai:fix-master
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
Maintainers usually reply within 1 day
-
flatten post-processing drops index columns when the index has several levelsPossibly taken @AliIbnBotir claimed this 5 days ago. Open#bug 🦾 ai-candidate
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
Maintainers usually reply within 1 day
-
RadioButtonControl calls onChange twice per selection (Radio.Group onChange plus a per-button onClick)Possibly taken @FrancescoCastaldi claimed this 15 days ago. Open#bug 🦾 ai-candidate
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
Maintainers usually reply within 1 day
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 79/100
SACGF/variantgrid#2341 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 88/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 2 days
-
comp/cli P3 type/security
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
NousResearch/hermes-agent#141420 · 1 comment ·
Maintainers usually reply within 1 day
-
CKV_GCP_18 (GKEPublicControlPlane) passes when master_authorized_networks_config is absent, control plane is internet-reachablePossibly taken @Varshith-Kali claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
bridgecrewio/checkov#7753 ·
Maintainers usually reply within 1 day