Commit e48b35f6 authored by David Black's avatar David Black Committed by Chromium LUCI CQ

Fix tooltip behaviors in holding space.

This CL fixes tooltips for:

- Holding space tray
- Holding space chips
- Holding space screen captures

Previously tooltips did not work because descendant views were
obstructing the views that implemented the tool tipbehavior or, in
the case of screen capture views, because tooltips had not previously
been implemented.

Bug: 1162050, 1164333
Change-Id: If924ff9e6e6edaa9b2d889c4b46c1180a5844f20
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2618476Reviewed-by: default avatarToni Baržić <tbarzic@chromium.org>
Commit-Queue: David Black <dmblack@google.com>
Cr-Commit-Position: refs/heads/master@{#841745}
parent 634bf431
...@@ -172,6 +172,13 @@ HoldingSpaceItemChipView::HoldingSpaceItemChipView( ...@@ -172,6 +172,13 @@ HoldingSpaceItemChipView::HoldingSpaceItemChipView(
HoldingSpaceItemChipView::~HoldingSpaceItemChipView() = default; HoldingSpaceItemChipView::~HoldingSpaceItemChipView() = default;
views::View* HoldingSpaceItemChipView::GetTooltipHandlerForPoint(
const gfx::Point& point) {
// Tooltips for this view are handled by `label_`, which will only show
// tooltips if the underlying text has been elided due to insufficient space.
return HitTestPoint(point) ? label_ : nullptr;
}
void HoldingSpaceItemChipView::OnHoldingSpaceItemUpdated( void HoldingSpaceItemChipView::OnHoldingSpaceItemUpdated(
const HoldingSpaceItem* item) { const HoldingSpaceItem* item) {
HoldingSpaceItemView::OnHoldingSpaceItemUpdated(item); HoldingSpaceItemView::OnHoldingSpaceItemUpdated(item);
......
...@@ -38,6 +38,7 @@ class ASH_EXPORT HoldingSpaceItemChipView : public HoldingSpaceItemView { ...@@ -38,6 +38,7 @@ class ASH_EXPORT HoldingSpaceItemChipView : public HoldingSpaceItemView {
class LabelMaskLayerOwner; class LabelMaskLayerOwner;
// HoldingSpaceItemView: // HoldingSpaceItemView:
views::View* GetTooltipHandlerForPoint(const gfx::Point& point) override;
void OnHoldingSpaceItemUpdated(const HoldingSpaceItem* item) override; void OnHoldingSpaceItemUpdated(const HoldingSpaceItem* item) override;
void OnPinVisiblityChanged(bool pin_visible) override; void OnPinVisiblityChanged(bool pin_visible) override;
......
...@@ -66,6 +66,24 @@ HoldingSpaceItemScreenCaptureView::HoldingSpaceItemScreenCaptureView( ...@@ -66,6 +66,24 @@ HoldingSpaceItemScreenCaptureView::HoldingSpaceItemScreenCaptureView(
HoldingSpaceItemScreenCaptureView::~HoldingSpaceItemScreenCaptureView() = HoldingSpaceItemScreenCaptureView::~HoldingSpaceItemScreenCaptureView() =
default; default;
views::View* HoldingSpaceItemScreenCaptureView::GetTooltipHandlerForPoint(
const gfx::Point& point) {
// Tooltip events should be handled top level, not by descendents.
return HitTestPoint(point) ? this : nullptr;
}
base::string16 HoldingSpaceItemScreenCaptureView::GetTooltipText(
const gfx::Point& point) const {
return item()->text();
}
void HoldingSpaceItemScreenCaptureView::OnHoldingSpaceItemUpdated(
const HoldingSpaceItem* item) {
HoldingSpaceItemView::OnHoldingSpaceItemUpdated(item);
if (this->item() == item)
TooltipTextChanged();
}
void HoldingSpaceItemScreenCaptureView::UpdateImage() { void HoldingSpaceItemScreenCaptureView::UpdateImage() {
image_->SetImage( image_->SetImage(
item()->image().GetImageSkia(kHoldingSpaceScreenCaptureSize)); item()->image().GetImageSkia(kHoldingSpaceScreenCaptureSize));
......
...@@ -30,6 +30,11 @@ class ASH_EXPORT HoldingSpaceItemScreenCaptureView ...@@ -30,6 +30,11 @@ class ASH_EXPORT HoldingSpaceItemScreenCaptureView
~HoldingSpaceItemScreenCaptureView() override; ~HoldingSpaceItemScreenCaptureView() override;
private: private:
// HoldingSpaceItemView:
views::View* GetTooltipHandlerForPoint(const gfx::Point& point) override;
base::string16 GetTooltipText(const gfx::Point& point) const override;
void OnHoldingSpaceItemUpdated(const HoldingSpaceItem* item) override;
void UpdateImage(); void UpdateImage();
// Overlays a play icon over `image_`. // Overlays a play icon over `image_`.
......
...@@ -59,7 +59,6 @@ std::unique_ptr<views::ImageView> CreateDefaultTrayIcon() { ...@@ -59,7 +59,6 @@ std::unique_ptr<views::ImageView> CreateDefaultTrayIcon() {
kHoldingSpaceIcon, kHoldingSpaceTrayIconSize, kHoldingSpaceIcon, kHoldingSpaceTrayIconSize,
AshColorProvider::Get()->GetContentLayerColor( AshColorProvider::Get()->GetContentLayerColor(
AshColorProvider::ContentLayerType::kIconColorPrimary))); AshColorProvider::ContentLayerType::kIconColorPrimary)));
icon->SetTooltipText(l10n_util::GetStringUTF16(IDS_ASH_HOLDING_SPACE_TITLE));
icon->SetPreferredSize(gfx::Size(kTrayItemSize, kTrayItemSize)); icon->SetPreferredSize(gfx::Size(kTrayItemSize, kTrayItemSize));
return icon; return icon;
} }
...@@ -111,11 +110,18 @@ base::string16 HoldingSpaceTray::GetAccessibleNameForTray() { ...@@ -111,11 +110,18 @@ base::string16 HoldingSpaceTray::GetAccessibleNameForTray() {
return l10n_util::GetStringUTF16(IDS_ASH_HOLDING_SPACE_A11Y_NAME); return l10n_util::GetStringUTF16(IDS_ASH_HOLDING_SPACE_A11Y_NAME);
} }
views::View* HoldingSpaceTray::GetTooltipHandlerForPoint(
const gfx::Point& point) {
// Tooltip events should be handled top level, not by descendents.
return HitTestPoint(point) ? this : nullptr;
}
base::string16 HoldingSpaceTray::GetTooltipText(const gfx::Point& point) const {
return l10n_util::GetStringUTF16(IDS_ASH_HOLDING_SPACE_TITLE);
}
void HoldingSpaceTray::HandleLocaleChange() { void HoldingSpaceTray::HandleLocaleChange() {
default_tray_icon_->SetTooltipText( TooltipTextChanged();
l10n_util::GetStringUTF16(IDS_ASH_HOLDING_SPACE_TITLE));
if (previews_tray_icon_)
previews_tray_icon_->OnLocaleChanged();
} }
void HoldingSpaceTray::HideBubbleWithView(const TrayBubbleView* bubble_view) {} void HoldingSpaceTray::HideBubbleWithView(const TrayBubbleView* bubble_view) {}
......
...@@ -58,6 +58,8 @@ class ASH_EXPORT HoldingSpaceTray : public TrayBackgroundView, ...@@ -58,6 +58,8 @@ class ASH_EXPORT HoldingSpaceTray : public TrayBackgroundView,
// TrayBackgroundView: // TrayBackgroundView:
void ClickedOutsideBubble() override; void ClickedOutsideBubble() override;
base::string16 GetAccessibleNameForTray() override; base::string16 GetAccessibleNameForTray() override;
views::View* GetTooltipHandlerForPoint(const gfx::Point& point) override;
base::string16 GetTooltipText(const gfx::Point& point) const override;
void HandleLocaleChange() override; void HandleLocaleChange() override;
void HideBubbleWithView(const TrayBubbleView* bubble_view) override; void HideBubbleWithView(const TrayBubbleView* bubble_view) override;
void AnchorUpdated() override; void AnchorUpdated() override;
......
...@@ -121,15 +121,6 @@ void HoldingSpaceTrayIcon::Clear() { ...@@ -121,15 +121,6 @@ void HoldingSpaceTrayIcon::Clear() {
removed_previews_.clear(); removed_previews_.clear();
} }
void HoldingSpaceTrayIcon::OnLocaleChanged() {
TooltipTextChanged();
}
base::string16 HoldingSpaceTrayIcon::GetTooltipText(
const gfx::Point& point) const {
return l10n_util::GetStringUTF16(IDS_ASH_HOLDING_SPACE_TITLE);
}
int HoldingSpaceTrayIcon::GetHeightForWidth(int width) const { int HoldingSpaceTrayIcon::GetHeightForWidth(int width) const {
// The parent for this view (`TrayContainer`) uses a `BoxLayout` for its // The parent for this view (`TrayContainer`) uses a `BoxLayout` for its
// `LayoutManager`. When the shelf orientation is vertical, the `BoxLayout` // `LayoutManager`. When the shelf orientation is vertical, the `BoxLayout`
......
...@@ -43,9 +43,6 @@ class ASH_EXPORT HoldingSpaceTrayIcon : public views::View, ...@@ -43,9 +43,6 @@ class ASH_EXPORT HoldingSpaceTrayIcon : public views::View,
// 4. Animate new items in. // 4. Animate new items in.
void UpdatePreviews(const std::vector<const HoldingSpaceItem*> items); void UpdatePreviews(const std::vector<const HoldingSpaceItem*> items);
// Invoked when the system locale has changed.
void OnLocaleChanged();
// Clears the icon. // Clears the icon.
void Clear(); void Clear();
...@@ -63,7 +60,6 @@ class ASH_EXPORT HoldingSpaceTrayIcon : public views::View, ...@@ -63,7 +60,6 @@ class ASH_EXPORT HoldingSpaceTrayIcon : public views::View,
class ResizeAnimation; class ResizeAnimation;
// views::View: // views::View:
base::string16 GetTooltipText(const gfx::Point& point) const override;
int GetHeightForWidth(int width) const override; int GetHeightForWidth(int width) const override;
gfx::Size CalculatePreferredSize() const override; gfx::Size CalculatePreferredSize() const override;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment