From 54d53bfa514e50e1847b7b4c110a8d46300d4c79 Mon Sep 17 00:00:00 2001 From: Shelley Vohr Date: Wed, 20 Nov 2024 12:45:08 +0100 Subject: [PATCH] fix: tooltips in WCO caption buttons (#44721) fix: tooltips in WCO capton buttons --- .../ui/views/win_caption_button_container.cc | 37 +++++++++++-------- .../ui/views/win_caption_button_container.h | 4 +- 2 files changed, 24 insertions(+), 17 deletions(-) diff --git a/shell/browser/ui/views/win_caption_button_container.cc b/shell/browser/ui/views/win_caption_button_container.cc index d98af953808b..2aff060d8c93 100644 --- a/shell/browser/ui/views/win_caption_button_container.cc +++ b/shell/browser/ui/views/win_caption_button_container.cc @@ -19,6 +19,7 @@ #include "ui/base/l10n/l10n_util.h" #include "ui/compositor/layer.h" #include "ui/strings/grit/ui_strings.h" +#include "ui/views/accessibility/view_accessibility.h" #include "ui/views/background.h" #include "ui/views/layout/flex_layout.h" #include "ui/views/view_class_properties.h" @@ -83,6 +84,7 @@ WinCaptionButtonContainer::WinCaptionButtonContainer(WinFrameView* frame_view) views::MaximumFlexSizeRule::kPreferred, /* adjust_width_for_height */ false, views::MinimumFlexSizeRule::kScaleToZero)); + UpdateButtonToolTipsForWindowControlsOverlay(); } WinCaptionButtonContainer::~WinCaptionButtonContainer() {} @@ -105,18 +107,6 @@ int WinCaptionButtonContainer::NonClientHitTest(const gfx::Point& point) const { return HTCAPTION; } -gfx::Size WinCaptionButtonContainer::GetButtonSize() const { - // Close button size is set the same as all the buttons - return close_button_->GetSize(); -} - -void WinCaptionButtonContainer::SetButtonSize(gfx::Size size) { - minimize_button_->SetSize(size); - maximize_button_->SetSize(size); - restore_button_->SetSize(size); - close_button_->SetSize(size); -} - void WinCaptionButtonContainer::ResetWindowControls() { minimize_button_->SetState(views::Button::STATE_NORMAL); maximize_button_->SetState(views::Button::STATE_NORMAL); @@ -132,10 +122,7 @@ void WinCaptionButtonContainer::AddedToWidget() { widget_observation_.Observe(widget); UpdateButtons(); - - if (frame_view_->window()->IsWindowControlsOverlayEnabled()) { - UpdateBackground(); - } + UpdateBackground(); } void WinCaptionButtonContainer::RemovedFromWidget() { @@ -183,6 +170,24 @@ void WinCaptionButtonContainer::UpdateButtons() { InvalidateLayout(); } +void WinCaptionButtonContainer::UpdateButtonToolTipsForWindowControlsOverlay() { + minimize_button_->SetTooltipText( + minimize_button_->GetViewAccessibility().GetCachedName()); + maximize_button_->SetTooltipText( + maximize_button_->GetViewAccessibility().GetCachedName()); + restore_button_->SetTooltipText( + restore_button_->GetViewAccessibility().GetCachedName()); + close_button_->SetTooltipText( + close_button_->GetViewAccessibility().GetCachedName()); +} + +void WinCaptionButtonContainer::SetButtonSize(gfx::Size size) { + minimize_button_->SetSize(size); + maximize_button_->SetSize(size); + restore_button_->SetSize(size); + close_button_->SetSize(size); +} + BEGIN_METADATA(WinCaptionButtonContainer) END_METADATA diff --git a/shell/browser/ui/views/win_caption_button_container.h b/shell/browser/ui/views/win_caption_button_container.h index 308f35ca5375..7c2390b7da20 100644 --- a/shell/browser/ui/views/win_caption_button_container.h +++ b/shell/browser/ui/views/win_caption_button_container.h @@ -42,9 +42,11 @@ class WinCaptionButtonContainer : public views::View, // See also ClientView::NonClientHitTest. int NonClientHitTest(const gfx::Point& point) const; - gfx::Size GetButtonSize() const; void SetButtonSize(gfx::Size size); + // Add tooltip text to caption buttons. + void UpdateButtonToolTipsForWindowControlsOverlay(); + // Sets caption button container background color. void UpdateBackground();