diff --git a/src/vs/workbench/browser/parts/activitybar/activitybarPart.ts b/src/vs/workbench/browser/parts/activitybar/activitybarPart.ts index e703469831ba3f784c34978233fac0a156163bc0..e684a25292bb2cf1f01fcb80d5fe3f98a5604501 100644 --- a/src/vs/workbench/browser/parts/activitybar/activitybarPart.ts +++ b/src/vs/workbench/browser/parts/activitybar/activitybarPart.ts @@ -18,7 +18,7 @@ import { Part } from 'vs/workbench/browser/part'; import { GlobalActivityActionItem, GlobalActivityAction, ViewletActivityAction, ToggleViewletAction } from 'vs/workbench/browser/parts/activitybar/activitybarActions'; import { IViewletService } from 'vs/workbench/services/viewlet/browser/viewlet'; import { IBadge } from 'vs/workbench/services/activity/common/activity'; -import { IPartService, Position as SideBarPosition } from 'vs/workbench/services/part/common/partService'; +import { IPartService, Parts, Position as SideBarPosition } from 'vs/workbench/services/part/common/partService'; import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; import { IContextMenuService } from 'vs/platform/contextview/browser/contextView'; import { StandardMouseEvent } from 'vs/base/browser/mouseEvent'; @@ -184,6 +184,9 @@ export class ActivitybarPart extends Part { * Layout title, content and status area in the given dimension. */ public layout(dimension: Dimension): Dimension[] { + if (!this.partService.isVisible(Parts.ACTIVITYBAR_PART)) { + return [dimension]; + } // Pass to super const sizes = super.layout(dimension); diff --git a/src/vs/workbench/browser/parts/panel/panelPart.ts b/src/vs/workbench/browser/parts/panel/panelPart.ts index 075ae3a16506f4270fdea4c96db208a2ab667ae9..d48670c3131297eaa6e4d3e259872fcad8369d72 100644 --- a/src/vs/workbench/browser/parts/panel/panelPart.ts +++ b/src/vs/workbench/browser/parts/panel/panelPart.ts @@ -213,6 +213,9 @@ export class PanelPart extends CompositePart implements IPanelService { } public layout(dimension: Dimension): Dimension[] { + if (!this.partService.isVisible(Parts.PANEL_PART)) { + return [dimension]; + } if (this.partService.getPanelPosition() === Position.RIGHT) { // Take into account the 1px border when layouting diff --git a/src/vs/workbench/browser/parts/sidebar/sidebarPart.ts b/src/vs/workbench/browser/parts/sidebar/sidebarPart.ts index fd9b149c8031bb6beea301a912dac2c73681d3a7..bdb3dae5d54efcde19cb955cd43701799b2c28b8 100644 --- a/src/vs/workbench/browser/parts/sidebar/sidebarPart.ts +++ b/src/vs/workbench/browser/parts/sidebar/sidebarPart.ts @@ -29,6 +29,7 @@ import { IThemeService } from 'vs/platform/theme/common/themeService'; import { contrastBorder } from 'vs/platform/theme/common/colorRegistry'; import { SIDE_BAR_TITLE_FOREGROUND, SIDE_BAR_BACKGROUND, SIDE_BAR_FOREGROUND, SIDE_BAR_BORDER } from 'vs/workbench/common/theme'; import { ToggleSidebarVisibilityAction } from 'vs/workbench/browser/actions/toggleSidebarVisibility'; +import { Dimension } from 'vs/base/browser/builder'; export class SidebarPart extends CompositePart { @@ -128,6 +129,14 @@ export class SidebarPart extends CompositePart { return this.hideActiveComposite().then(composite => void 0); } + public layout(dimension: Dimension): Dimension[] { + if (!this.partService.isVisible(Parts.SIDEBAR_PART)) { + return [dimension]; + } + + return super.layout(dimension); + } + protected getTitleAreaContextMenuActions(): IAction[] { const contextMenuActions = super.getTitleAreaContextMenuActions(); if (contextMenuActions.length) {