feat: enable floating dialog panel mode#299876
Open
ramizpolic wants to merge 7 commits intomicrosoft:mainfrom
Open
feat: enable floating dialog panel mode#299876ramizpolic wants to merge 7 commits intomicrosoft:mainfrom
ramizpolic wants to merge 7 commits intomicrosoft:mainfrom
Conversation
📬 CODENOTIFYThe following users are being notified based on files changed in this PR: @bpaseroMatched files:
|
Author
|
@microsoft-github-policy-service agree |
b2ff7f0 to
5a13adc
Compare
nyila
reviewed
Mar 6, 2026
Author
|
the implementation may not be the cleanest/most optimal, but im willing to clean it up. my goal was to get the point across by focusing more on the issue itself |
Adds PanelMode enum with Pinned and Dialog modes. Panel can now float as a dialog overlay above the workbench instead of being docked in the grid. Key changes: - PanelMode enum: Pinned (default, grid-docked) and Dialog (floating) - New methods: getPanelMode(), setPanelMode(), togglePanelMode() - PanelDialogModeContext context key for conditional UI - CSS styling for dialog overlay, backdrop, and maximize states - Toggle Panel Mode action in panel title bar - Proper state preservation when switching modes
5a13adc to
b0bc2d7
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Overview
This PR adds a floating "dialog" mode for the panel that allows it to hover as a draggable, resizable overlay above the workbench as an alternative to the docked panel in the grid layout.
Linked Issue: #299869
Architecture
The implementation introduces a
PanelModeenum with two states:Layout Service (
layoutService.ts)PanelModeenum exportgetPanelMode(),setPanelMode(), andtogglePanelMode()toIWorkbenchLayoutServiceLayout Implementation (
layout.ts)resize: bothwith bounds clamping to safe areaPanel Actions (
panelActions.ts)TogglePanelModeActioncommand with keyboard shortcutContext Keys (
contextkeys.ts)PanelDialogModeContextfor conditional UI (hiding position selectors in dialog mode, etc.)Storage
Dialog bounds are persisted using the storage key
workbench.panel.dialogBoundsRatiowith relative ratios: