Use correct horizontal overlap for previews and submenus.
The popup windows for previews and submenus have a slight overlap
with the Picker window. Use the correct overlap view of 4px.
Fixed: b:350772866
Change-Id: I7c80a90eb853b5184f0d9655972061d2fb43c5d4
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5681508
Reviewed-by: Jing Wang <jiwan@chromium.org>
Commit-Queue: Darren Shen <shend@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1324071}
diff --git a/ash/picker/views/picker_preview_bubble.cc b/ash/picker/views/picker_preview_bubble.cc
index 36e9e6f..88e1a5d 100644
--- a/ash/picker/views/picker_preview_bubble.cc
+++ b/ash/picker/views/picker_preview_bubble.cc
@@ -29,7 +29,7 @@
constexpr ui::ColorId kBackgroundColor =
cros_tokens::kCrosSysSystemBaseElevatedOpaque;
-constexpr int kBubbleOverlapOverPicker = 8;
+constexpr int kBubbleOverlapOverPicker = 4;
constexpr int kPickerBubbleCornerRadius = 12;
// TODO(b/322899031): Translate these strings.
constexpr std::u16string_view kLinkLabelText = u"Link";
diff --git a/ash/picker/views/picker_submenu_view.cc b/ash/picker/views/picker_submenu_view.cc
index 5f9472fe..8a2442b 100644
--- a/ash/picker/views/picker_submenu_view.cc
+++ b/ash/picker/views/picker_submenu_view.cc
@@ -27,6 +27,7 @@
constexpr int kSubmenuWidth = 256;
constexpr auto kInsets = gfx::Insets::VH(8, 0);
+constexpr int kSubmenuHorizontalOverlap = 4;
std::unique_ptr<views::BubbleBorder> CreateBorder() {
auto border = std::make_unique<views::BubbleBorder>(
@@ -110,7 +111,11 @@
return Contains(item);
}
-gfx::Rect PickerSubmenuView::GetDesiredBounds(const gfx::Rect& anchor_rect) {
+gfx::Rect PickerSubmenuView::GetDesiredBounds(gfx::Rect anchor_rect) {
+ // Inset the anchor rect so that the submenu overlaps slightly with the
+ // anchor.
+ anchor_rect.Inset(gfx::Insets::VH(0, kSubmenuHorizontalOverlap));
+
auto* bubble_frame_view = static_cast<views::BubbleFrameView*>(
GetWidget()->non_client_view()->frame_view());
gfx::Rect bounds = bubble_frame_view->GetUpdatedWindowBounds(
diff --git a/ash/picker/views/picker_submenu_view.h b/ash/picker/views/picker_submenu_view.h
index 0786759..1c08845 100644
--- a/ash/picker/views/picker_submenu_view.h
+++ b/ash/picker/views/picker_submenu_view.h
@@ -49,7 +49,7 @@
bool ContainsItem(views::View* item) override;
private:
- gfx::Rect GetDesiredBounds(const gfx::Rect& anchor_rect);
+ gfx::Rect GetDesiredBounds(gfx::Rect anchor_rect);
// Section which contains the submenu items.
raw_ptr<PickerSectionView> section_view_;