diff --git a/src/vs/sessions/browser/menus.ts b/src/vs/sessions/browser/menus.ts index 2a064fe7ffc46..87ab0ab041315 100644 --- a/src/vs/sessions/browser/menus.ts +++ b/src/vs/sessions/browser/menus.ts @@ -19,7 +19,6 @@ export const Menus = { TitleBarSessionTitle: new MenuId('SessionsTitleBarSessionTitle'), TitleBarSessionMenu: new MenuId('SessionsTitleBarSessionMenu'), TitleBarAccessibility: new MenuId('SessionsTitleBarAccessibility'), - TitleBarUpdate: new MenuId('SessionsTitleBarUpdate'), BlockedSessionsHeader: new MenuId('SessionsBlockedSessionsHeader'), BlockedSessionsItem: new MenuId('SessionsBlockedSessionsItem'), TitleBarRightLayout: new MenuId('SessionsTitleBarRightLayout'), diff --git a/src/vs/sessions/browser/parts/media/titlebarpart.css b/src/vs/sessions/browser/parts/media/titlebarpart.css index 29f805e61daa8..d717e4087a89e 100644 --- a/src/vs/sessions/browser/parts/media/titlebarpart.css +++ b/src/vs/sessions/browser/parts/media/titlebarpart.css @@ -106,10 +106,6 @@ align-items: center; } -.monaco-workbench .part.titlebar > .sessions-titlebar-container > .titlebar-right > .titlebar-update-container:not(.has-no-actions) { - margin-right: var(--vscode-spacing-size40); -} - .monaco-workbench .part.titlebar > .sessions-titlebar-container > .titlebar-right > .titlebar-screen-reader-container:not(.has-no-actions) { margin-right: var(--vscode-spacing-size40); } diff --git a/src/vs/sessions/browser/parts/titlebarPart.ts b/src/vs/sessions/browser/parts/titlebarPart.ts index 5e3d803ea7ba6..d643be71cbbcb 100644 --- a/src/vs/sessions/browser/parts/titlebarPart.ts +++ b/src/vs/sessions/browser/parts/titlebarPart.ts @@ -260,15 +260,6 @@ export class TitlebarPart extends Part implements ITitlebarPart { toolbarOptions: { primaryGroup: () => true }, })); - // Update toolbar (leftmost in the right-side controls) - const updateToolBarElement = prepend(this.rightContent, $('div.titlebar-actions-container.titlebar-update-container')); - const updateToolBar = this._register(this.instantiationService.createInstance(MenuWorkbenchToolBar, updateToolBarElement, Menus.TitleBarUpdate, { - contextMenu: Menus.TitleBarContext, - hiddenItemStrategy: HiddenItemStrategy.NoHide, - telemetrySource: 'titlePart.update', - toolbarOptions: { primaryGroup: () => true }, - })); - const screenReaderToolBarElement = prepend(this.rightContent, $('div.titlebar-actions-container.titlebar-screen-reader-container')); const screenReaderButtonBar = this._register(this.instantiationService.createInstance(MenuWorkbenchButtonBar, screenReaderToolBarElement, Menus.TitleBarAccessibility, { telemetrySource: 'titlePart.accessibility', @@ -287,7 +278,6 @@ export class TitlebarPart extends Part implements ITitlebarPart { this.registerOverflowManagedToolBar(centerNavContainer, centerNavToolBar); this.registerOverflowManagedToolBar(rightToolbarContainer, rightToolBar); this.registerOverflowManagedToolBar(sessionActionsContainer, sessionActionsToolBar); - this.registerOverflowManagedToolBar(updateToolBarElement, updateToolBar); // Context menu on the titlebar this._register(addDisposableListener(this.rootContainer, EventType.CONTEXT_MENU, e => { diff --git a/src/vs/sessions/contrib/accountMenu/browser/account.contribution.ts b/src/vs/sessions/contrib/accountMenu/browser/account.contribution.ts index 68b63ba52b27c..41e9af727eab0 100644 --- a/src/vs/sessions/contrib/accountMenu/browser/account.contribution.ts +++ b/src/vs/sessions/contrib/accountMenu/browser/account.contribution.ts @@ -36,7 +36,7 @@ import { HoverPosition } from '../../../../base/browser/ui/hover/hoverWidget.js' import { ThemeIcon } from '../../../../base/common/themables.js'; import { getAccountProfileImageUrl, getAccountTitleBarBadgeKey, getAccountTitleBarState, IAccountTitleBarState, resolveAccountInfo } from '../../../browser/accountTitleBarState.js'; import { observeAllowSignedOutWhenUsable } from '../../../browser/sessionsAuthGate.js'; -import { IsPhoneLayoutContext, SessionHasChangesContext, SessionIsCreatedContext, SessionsWelcomeVisibleContext, SinglePaneLayoutEnabledContext } from '../../../common/contextkeys.js'; +import { IsPhoneLayoutContext, SessionsWelcomeVisibleContext } from '../../../common/contextkeys.js'; import { IsAuxiliaryWindowContext } from '../../../../workbench/common/contextkeys.js'; import { IAuthenticationAccessService } from '../../../../workbench/services/authentication/browser/authenticationAccessService.js'; import { IAuthenticationUsageService } from '../../../../workbench/services/authentication/browser/authenticationUsageService.js'; @@ -75,18 +75,13 @@ export function shouldShowAccountPanelSummary(state: Pick this.createEntry(instantiationService, action, options) + (action, options) => this.createEntry(instantiationService, action, options, AnchorAlignment.RIGHT) )); if (additionalMenuPlacement) { @@ -140,15 +140,15 @@ export class UpdateTitleBarContribution extends Disposable implements IWorkbench this._register(actionViewItemService.register( menuId, UPDATE_TITLE_BAR_ACTION_ID, - (action, options) => this.createEntry(instantiationService, action, options) + (action, options) => this.createEntry(instantiationService, action, options, AnchorAlignment.LEFT) )); } void this.onStateChange(true); } - private createEntry(instantiationService: IInstantiationService, action: IAction, options: IBaseActionViewItemOptions): UpdateTitleBarEntry { - this.entry = instantiationService.createInstance(UpdateTitleBarEntry, action, options, this.tooltip, focus => { + private createEntry(instantiationService: IInstantiationService, action: IAction, options: IBaseActionViewItemOptions, anchorAlignment: AnchorAlignment): UpdateTitleBarEntry { + this.entry = instantiationService.createInstance(UpdateTitleBarEntry, action, options, anchorAlignment, this.tooltip, focus => { this.tooltipVisible = true; this.tooltipFocused = focus; }, () => { @@ -239,6 +239,7 @@ export class UpdateTitleBarEntry extends BaseActionViewItem { constructor( action: IAction, options: IBaseActionViewItemOptions, + private readonly anchorAlignment: AnchorAlignment, private readonly tooltip: UpdateTooltip, private readonly onDidShowTooltip: (focus: boolean) => void, private readonly onUserDismissedTooltip: () => void, @@ -291,7 +292,7 @@ export class UpdateTitleBarEntry extends BaseActionViewItem { }, persistence: { sticky: true }, appearance: { showPointer: true, compact: true }, - position: { anchorAlignment: AnchorAlignment.RIGHT }, + position: { anchorAlignment: this.anchorAlignment }, trapFocus: focus, }, focus); @@ -311,7 +312,7 @@ export class UpdateTitleBarEntry extends BaseActionViewItem { } protected override getHoverOptions(): IManagedHoverOptions { - return { position: { anchorAlignment: AnchorAlignment.RIGHT } }; + return { position: { anchorAlignment: this.anchorAlignment } }; } private async runAction() { diff --git a/src/vs/workbench/contrib/update/test/browser/updateTitleBarEntry.test.ts b/src/vs/workbench/contrib/update/test/browser/updateTitleBarEntry.test.ts index df605cb44fa96..f7449b88dfe80 100644 --- a/src/vs/workbench/contrib/update/test/browser/updateTitleBarEntry.test.ts +++ b/src/vs/workbench/contrib/update/test/browser/updateTitleBarEntry.test.ts @@ -7,6 +7,7 @@ import assert from 'assert'; import { mainWindow } from '../../../../../base/browser/window.js'; import { Action } from '../../../../../base/common/actions.js'; import { Emitter, Event } from '../../../../../base/common/event.js'; +import { AnchorAlignment } from '../../../../../base/common/layout.js'; import { toDisposable } from '../../../../../base/common/lifecycle.js'; import { isMacintosh, isWeb } from '../../../../../base/common/platform.js'; import { IHoverOptions, IHoverWidget } from '../../../../../base/browser/ui/hover/hover.js'; @@ -48,10 +49,10 @@ class TestHoverWidget implements IHoverWidget { } class TestHoverService extends mock() { - readonly showRequests: { readonly focus: boolean; readonly trapFocus: boolean }[] = []; + readonly showRequests: { readonly focus: boolean; readonly trapFocus: boolean; readonly anchorAlignment: AnchorAlignment | undefined }[] = []; override showInstantHover(options: IHoverOptions, focus?: boolean): IHoverWidget { - this.showRequests.push({ focus: !!focus, trapFocus: !!options.trapFocus }); + this.showRequests.push({ focus: !!focus, trapFocus: !!options.trapFocus, anchorAlignment: options.position?.anchorAlignment }); return new TestHoverWidget(); } } @@ -76,6 +77,7 @@ suite('UpdateTitleBarEntry', () => { const entry = store.add(new UpdateTitleBarEntry( action, {}, + AnchorAlignment.LEFT, new class extends mock() { override readonly domNode = mainWindow.document.createElement('div'); }, @@ -101,7 +103,7 @@ suite('UpdateTitleBarEntry', () => { hoverShowRequests: hoverService.showRequests, }, { tabDefaultPrevented: false, - hoverShowRequests: [{ focus: true, trapFocus: true }], + hoverShowRequests: [{ focus: true, trapFocus: true, anchorAlignment: AnchorAlignment.LEFT }], }); }); });