From 6e62970b0566796d6cfd2b28722e0ccd32cd3af2 Mon Sep 17 00:00:00 2001 From: Ladislau Szomoru <3372902+lszomoru@users.noreply.github.com> Date: Tue, 2 Apr 2024 15:25:40 +0200 Subject: [PATCH] SCM - use custom hover for history item statistics (#209346) --- src/vs/workbench/contrib/scm/browser/scmViewPane.ts | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/vs/workbench/contrib/scm/browser/scmViewPane.ts b/src/vs/workbench/contrib/scm/browser/scmViewPane.ts index 5d834cc1f73..cab7e308107 100644 --- a/src/vs/workbench/contrib/scm/browser/scmViewPane.ts +++ b/src/vs/workbench/contrib/scm/browser/scmViewPane.ts @@ -106,6 +106,8 @@ import { CancellationTokenSource } from 'vs/base/common/cancellation'; import { DropdownWithPrimaryActionViewItem } from 'vs/platform/actions/browser/dropdownWithPrimaryActionViewItem'; import { clamp } from 'vs/base/common/numbers'; import { ILogService } from 'vs/platform/log/common/log'; +import { ICustomHover, setupCustomHover } from 'vs/base/browser/ui/hover/updatableHoverWidget'; +import { getDefaultHoverDelegate } from 'vs/base/browser/ui/hover/hoverDelegateFactory'; // type SCMResourceTreeNode = IResourceNode; // type SCMHistoryItemChangeResourceTreeNode = IResourceNode; @@ -891,6 +893,7 @@ interface HistoryItemTemplate { readonly iconContainer: HTMLElement; readonly label: IconLabel; readonly statsContainer: HTMLElement; + readonly statsCustomHover: ICustomHover; readonly filesLabel: HTMLElement; readonly insertionsLabel: HTMLElement; readonly deletionsLabel: HTMLElement; @@ -928,7 +931,10 @@ class HistoryItemRenderer implements ICompressibleTreeRenderer, index: number, templateData: HistoryItemTemplate, height: number | undefined): void { @@ -983,10 +989,9 @@ class HistoryItemRenderer implements ICompressibleTreeRenderer 1 ? localize('deletions', "{0} deletions{1}", historyItem.statistics.deletions, '(-)') : '' ]; - const statsTitle = statsAriaLabel - .filter(l => l !== '').join(', '); - templateData.statsContainer.title = statsTitle; + const statsTitle = statsAriaLabel.filter(l => l !== '').join(', '); templateData.statsContainer.setAttribute('aria-label', statsTitle); + templateData.statsCustomHover.update(statsTitle); templateData.filesLabel.textContent = historyItem.statistics.files.toString();