Commit 76748b2c authored by Dave Schuyler's avatar Dave Schuyler Committed by Commit Bot

[Omnibox] fix hover over text and images.

This CL uses CanProcessEventsWithinSubtree to stop enter/exit events to
text and image elements.

Bug: 820892
Change-Id: Ice5adc61ba617db3119eea9a99d10255888aa840
Reviewed-on: https://chromium-review.googlesource.com/962665Reviewed-by: default avatarJustin Donnelly <jdonnelly@chromium.org>
Reviewed-by: default avatarKevin Bailey <krb@chromium.org>
Commit-Queue: Dave Schuyler <dschuyler@chromium.org>
Cr-Commit-Position: refs/heads/master@{#543456}
parent 96ddff8e
......@@ -126,6 +126,14 @@ int GetIconAlignmentOffset() {
} // namespace
////////////////////////////////////////////////////////////////////////////////
// OmniboxResultView:
class OmniboxImageView : public views::ImageView {
public:
bool CanProcessEventsWithinSubtree() const override { return false; }
};
////////////////////////////////////////////////////////////////////////////////
// OmniboxResultView, public:
......@@ -139,9 +147,9 @@ OmniboxResultView::OmniboxResultView(OmniboxPopupContentsView* model,
font_list.GetHeight(),
font_list.DeriveWithWeight(gfx::Font::Weight::BOLD).GetHeight())),
animation_(new gfx::SlideAnimation(this)),
icon_view_(AddImageView()),
image_view_(AddImageView()),
keyword_icon_view_(AddImageView()),
icon_view_(AddOmniboxImageView()),
image_view_(AddOmniboxImageView()),
keyword_icon_view_(AddOmniboxImageView()),
content_view_(AddOmniboxTextView(font_list)),
description_view_(AddOmniboxTextView(font_list)),
keyword_content_view_(AddOmniboxTextView(font_list)),
......@@ -183,7 +191,6 @@ void OmniboxResultView::SetMatch(const AutocompleteMatch& match) {
match_ = match.GetMatchWithContentsAndDescriptionPossiblySwapped();
animation_->Reset();
is_hovered_ = false;
icon_view_->SetImage(GetIcon().ToImageSkia());
image_view_->SetVisible(false); // Until SetAnswerImage is called.
keyword_icon_view_->SetVisible(match_.associated_keyword.get());
......@@ -390,8 +397,8 @@ void OmniboxResultView::OnNativeThemeChanged(const ui::NativeTheme* theme) {
////////////////////////////////////////////////////////////////////////////////
// OmniboxResultView, private:
views::ImageView* OmniboxResultView::AddImageView() {
views::ImageView* view = new views::ImageView();
OmniboxImageView* OmniboxResultView::AddOmniboxImageView() {
OmniboxImageView* view = new OmniboxImageView();
AddChildView(view);
return view;
}
......
......@@ -29,6 +29,7 @@ namespace gfx {
class Image;
}
class OmniboxImageView;
class OmniboxTabSwitchButton;
class OmniboxTextView;
......@@ -97,7 +98,7 @@ class OmniboxResultView : public views::View,
private:
// Create instance and add it as a child.
views::ImageView* AddImageView();
OmniboxImageView* AddOmniboxImageView();
OmniboxTextView* AddOmniboxTextView(const gfx::FontList& font_list);
// Returns the height of the text portion of the result view.
......
......@@ -121,6 +121,10 @@ gfx::Size OmniboxTextView::CalculatePreferredSize() const {
return render_text_->GetStringSize();
}
bool OmniboxTextView::CanProcessEventsWithinSubtree() const {
return false;
}
const char* OmniboxTextView::GetClassName() const {
return "OmniboxTextView";
}
......
......@@ -32,6 +32,7 @@ class OmniboxTextView : public views::View {
// views::View.
gfx::Size CalculatePreferredSize() const override;
bool CanProcessEventsWithinSubtree() const override;
const char* GetClassName() const override;
int GetHeightForWidth(int width) const override;
void OnPaint(gfx::Canvas* canvas) 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