Skip to content

Commit f80445a

Browse files
authored
* fixes microsoft#141349 * additional handling of the panel position with panel alignment
1 parent 7f9be88 commit f80445a

File tree

17 files changed

+307
-103
lines changed

17 files changed

+307
-103
lines changed

src/vs/platform/actions/common/actions.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,7 @@ export class MenuId {
113113
static readonly MenubarLayoutMenu = new MenuId('MenubarLayoutMenu');
114114
static readonly MenubarNewBreakpointMenu = new MenuId('MenubarNewBreakpointMenu');
115115
static readonly MenubarPanelAlignmentMenu = new MenuId('MenubarPanelAlignmentMenu');
116+
static readonly MenubarPanelPositionMenu = new MenuId('MenubarPanelPositionMenu');
116117
static readonly MenubarPreferencesMenu = new MenuId('MenubarPreferencesMenu');
117118
static readonly MenubarRecentMenu = new MenuId('MenubarRecentMenu');
118119
static readonly MenubarSelectionMenu = new MenuId('MenubarSelectionMenu');

src/vs/workbench/browser/contextkeys.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,15 @@ import { Event } from 'vs/base/common/event';
77
import { Disposable } from 'vs/base/common/lifecycle';
88
import { IContextKeyService, IContextKey } from 'vs/platform/contextkey/common/contextkey';
99
import { InputFocusedContext, IsMacContext, IsLinuxContext, IsWindowsContext, IsWebContext, IsMacNativeContext, IsDevelopmentContext, IsIOSContext } from 'vs/platform/contextkey/common/contextkeys';
10-
import { SplitEditorsVertically, InEditorZenModeContext, ActiveEditorCanRevertContext, ActiveEditorGroupLockedContext, ActiveEditorCanSplitInGroupContext, SideBySideEditorActiveContext, AuxiliaryBarVisibleContext, SideBarVisibleContext, PanelAlignmentContext, PanelMaximizedContext, PanelVisibleContext, ActiveEditorContext, EditorsVisibleContext, TextCompareEditorVisibleContext, TextCompareEditorActiveContext, ActiveEditorGroupEmptyContext, MultipleEditorGroupsContext, EditorTabsVisibleContext, IsCenteredLayoutContext, ActiveEditorGroupIndexContext, ActiveEditorGroupLastContext, ActiveEditorReadonlyContext, EditorAreaVisibleContext, ActiveEditorAvailableEditorIdsContext, DirtyWorkingCopiesContext, EmptyWorkspaceSupportContext, EnterMultiRootWorkspaceSupportContext, HasWebFileSystemAccess, IsFullscreenContext, OpenFolderWorkspaceSupportContext, RemoteNameContext, VirtualWorkspaceContext, WorkbenchStateContext, WorkspaceFolderCountContext } from 'vs/workbench/common/contextkeys';
10+
import { SplitEditorsVertically, InEditorZenModeContext, ActiveEditorCanRevertContext, ActiveEditorGroupLockedContext, ActiveEditorCanSplitInGroupContext, SideBySideEditorActiveContext, AuxiliaryBarVisibleContext, SideBarVisibleContext, PanelAlignmentContext, PanelMaximizedContext, PanelVisibleContext, ActiveEditorContext, EditorsVisibleContext, TextCompareEditorVisibleContext, TextCompareEditorActiveContext, ActiveEditorGroupEmptyContext, MultipleEditorGroupsContext, EditorTabsVisibleContext, IsCenteredLayoutContext, ActiveEditorGroupIndexContext, ActiveEditorGroupLastContext, ActiveEditorReadonlyContext, EditorAreaVisibleContext, ActiveEditorAvailableEditorIdsContext, DirtyWorkingCopiesContext, EmptyWorkspaceSupportContext, EnterMultiRootWorkspaceSupportContext, HasWebFileSystemAccess, IsFullscreenContext, OpenFolderWorkspaceSupportContext, RemoteNameContext, VirtualWorkspaceContext, WorkbenchStateContext, WorkspaceFolderCountContext, PanelPositionContext } from 'vs/workbench/common/contextkeys';
1111
import { TEXT_DIFF_EDITOR_ID, EditorInputCapabilities, SIDE_BY_SIDE_EDITOR_ID, DEFAULT_EDITOR_ASSOCIATION } from 'vs/workbench/common/editor';
1212
import { trackFocus, addDisposableListener, EventType, WebFileSystemAccess } from 'vs/base/browser/dom';
1313
import { preferredSideBySideGroupDirection, GroupDirection, IEditorGroupsService } from 'vs/workbench/services/editor/common/editorGroupsService';
1414
import { IConfigurationService } from 'vs/platform/configuration/common/configuration';
1515
import { IWorkbenchEnvironmentService } from 'vs/workbench/services/environment/common/environmentService';
1616
import { IEditorService } from 'vs/workbench/services/editor/common/editorService';
1717
import { WorkbenchState, IWorkspaceContextService } from 'vs/platform/workspace/common/workspace';
18-
import { IWorkbenchLayoutService, Parts } from 'vs/workbench/services/layout/browser/layoutService';
18+
import { IWorkbenchLayoutService, Parts, positionToString } from 'vs/workbench/services/layout/browser/layoutService';
1919
import { getRemoteName } from 'vs/platform/remote/common/remoteHosts';
2020
import { getVirtualWorkspaceScheme } from 'vs/platform/workspace/common/virtualWorkspace';
2121
import { IWorkingCopyService } from 'vs/workbench/services/workingCopy/common/workingCopyService';
@@ -63,6 +63,7 @@ export class WorkbenchContextKeysHandler extends Disposable {
6363
private isCenteredLayoutContext: IContextKey<boolean>;
6464
private sideBarVisibleContext: IContextKey<boolean>;
6565
private editorAreaVisibleContext: IContextKey<boolean>;
66+
private panelPositionContext: IContextKey<string>;
6667
private panelVisibleContext: IContextKey<boolean>;
6768
private panelAlignmentContext: IContextKey<string>;
6869
private panelMaximizedContext: IContextKey<boolean>;
@@ -179,6 +180,8 @@ export class WorkbenchContextKeysHandler extends Disposable {
179180
this.sideBarVisibleContext = SideBarVisibleContext.bindTo(this.contextKeyService);
180181

181182
// Panel
183+
this.panelPositionContext = PanelPositionContext.bindTo(this.contextKeyService);
184+
this.panelPositionContext.set(positionToString(this.layoutService.getPanelPosition()));
182185
this.panelVisibleContext = PanelVisibleContext.bindTo(this.contextKeyService);
183186
this.panelVisibleContext.set(this.layoutService.isVisible(Parts.PANEL_PART));
184187
this.panelMaximizedContext = PanelMaximizedContext.bindTo(this.contextKeyService);
@@ -228,6 +231,7 @@ export class WorkbenchContextKeysHandler extends Disposable {
228231
this._register(this.layoutService.onDidChangeZenMode(enabled => this.inZenModeContext.set(enabled)));
229232
this._register(this.layoutService.onDidChangeFullscreen(fullscreen => this.isFullscreenContext.set(fullscreen)));
230233
this._register(this.layoutService.onDidChangeCenteredLayout(centered => this.isCenteredLayoutContext.set(centered)));
234+
this._register(this.layoutService.onDidChangePanelPosition(position => this.panelPositionContext.set(position)));
231235

232236
this._register(this.layoutService.onDidChangePanelAlignment(alignment => this.panelAlignmentContext.set(alignment)));
233237

0 commit comments

Comments
 (0)