Commit ad6a740a authored by Elly Fong-Jones's avatar Elly Fong-Jones Committed by Commit Bot

views: use focus rings on buttons when the platform does so

This change causes all buttons to use focus rings on platforms that use
them.

Bug: 847121
Change-Id: Ida4fba2004d03d6482fd7c4da6dd3cbb8b13a72b
Reviewed-on: https://chromium-review.googlesource.com/1163315Reviewed-by: default avatarMichael Wasserman <msw@chromium.org>
Commit-Queue: Elly Fong-Jones <ellyjones@chromium.org>
Cr-Commit-Position: refs/heads/master@{#581305}
parent 17a922fb
...@@ -254,7 +254,6 @@ class BookmarkButtonBase : public views::LabelButton { ...@@ -254,7 +254,6 @@ class BookmarkButtonBase : public views::LabelButton {
} else { } else {
show_animation_->Show(); show_animation_->Show();
} }
SetInstallFocusRingOnFocus(views::PlatformStyle::kPreferFocusRings);
} }
View* GetTooltipHandlerForPoint(const gfx::Point& point) override { View* GetTooltipHandlerForPoint(const gfx::Point& point) override {
...@@ -394,7 +393,6 @@ class BookmarkMenuButtonBase : public views::MenuButton { ...@@ -394,7 +393,6 @@ class BookmarkMenuButtonBase : public views::MenuButton {
SetInkDropMode(InkDropMode::ON); SetInkDropMode(InkDropMode::ON);
set_ink_drop_visible_opacity(kToolbarInkDropVisibleOpacity); set_ink_drop_visible_opacity(kToolbarInkDropVisibleOpacity);
SetFocusPainter(nullptr); SetFocusPainter(nullptr);
SetInstallFocusRingOnFocus(views::PlatformStyle::kPreferFocusRings);
} }
// MenuButton: // MenuButton:
......
...@@ -10,12 +10,9 @@ ...@@ -10,12 +10,9 @@
#include "chrome/browser/ui/views/toolbar/app_menu.h" #include "chrome/browser/ui/views/toolbar/app_menu.h"
#include "chrome/browser/ui/views/toolbar/toolbar_ink_drop_util.h" #include "chrome/browser/ui/views/toolbar/toolbar_ink_drop_util.h"
#include "ui/views/controls/menu/menu_listener.h" #include "ui/views/controls/menu/menu_listener.h"
#include "ui/views/style/platform_style.h"
AppMenuButton::AppMenuButton(views::MenuButtonListener* menu_button_listener) AppMenuButton::AppMenuButton(views::MenuButtonListener* menu_button_listener)
: views::MenuButton(base::string16(), menu_button_listener, false) { : views::MenuButton(base::string16(), menu_button_listener, false) {}
SetInstallFocusRingOnFocus(views::PlatformStyle::kPreferFocusRings);
}
AppMenuButton::~AppMenuButton() {} AppMenuButton::~AppMenuButton() {}
......
...@@ -25,7 +25,6 @@ ...@@ -25,7 +25,6 @@
#include "ui/views/animation/ink_drop_ripple.h" #include "ui/views/animation/ink_drop_ripple.h"
#include "ui/views/border.h" #include "ui/views/border.h"
#include "ui/views/controls/image_view.h" #include "ui/views/controls/image_view.h"
#include "ui/views/style/platform_style.h"
#include "ui/views/widget/widget.h" #include "ui/views/widget/widget.h"
namespace { namespace {
...@@ -73,7 +72,7 @@ void IconLabelBubbleView::SeparatorView::UpdateOpacity() { ...@@ -73,7 +72,7 @@ void IconLabelBubbleView::SeparatorView::UpdateOpacity() {
// When using focus rings are visible we should hide the separator instantly // When using focus rings are visible we should hide the separator instantly
// when the IconLabelBubbleView is focused. Otherwise we should follow the // when the IconLabelBubbleView is focused. Otherwise we should follow the
// inkdrop. // inkdrop.
if (views::PlatformStyle::kPreferFocusRings && owner_->HasFocus()) { if (owner_->focus_ring() && owner_->HasFocus()) {
layer()->SetOpacity(0.0f); layer()->SetOpacity(0.0f);
return; return;
} }
...@@ -146,8 +145,6 @@ IconLabelBubbleView::IconLabelBubbleView(const gfx::FontList& font_list) ...@@ -146,8 +145,6 @@ IconLabelBubbleView::IconLabelBubbleView(const gfx::FontList& font_list)
// Flip the canvas in RTL so the separator is drawn on the correct side. // Flip the canvas in RTL so the separator is drawn on the correct side.
separator_view_->EnableCanvasFlippingForRTLUI(true); separator_view_->EnableCanvasFlippingForRTLUI(true);
SetInstallFocusRingOnFocus(views::PlatformStyle::kPreferFocusRings);
} }
IconLabelBubbleView::~IconLabelBubbleView() { IconLabelBubbleView::~IconLabelBubbleView() {
...@@ -307,7 +304,7 @@ void IconLabelBubbleView::RemoveInkDropLayer(ui::Layer* ink_drop_layer) { ...@@ -307,7 +304,7 @@ void IconLabelBubbleView::RemoveInkDropLayer(ui::Layer* ink_drop_layer) {
std::unique_ptr<views::InkDrop> IconLabelBubbleView::CreateInkDrop() { std::unique_ptr<views::InkDrop> IconLabelBubbleView::CreateInkDrop() {
std::unique_ptr<views::InkDropImpl> ink_drop = std::unique_ptr<views::InkDropImpl> ink_drop =
CreateDefaultFloodFillInkDropImpl(); CreateDefaultFloodFillInkDropImpl();
ink_drop->SetShowHighlightOnFocus(!views::PlatformStyle::kPreferFocusRings); ink_drop->SetShowHighlightOnFocus(!focus_ring());
ink_drop->AddObserver(this); ink_drop->AddObserver(this);
return std::move(ink_drop); return std::move(ink_drop);
} }
......
...@@ -45,8 +45,6 @@ PageActionIconView::PageActionIconView(CommandUpdater* command_updater, ...@@ -45,8 +45,6 @@ PageActionIconView::PageActionIconView(CommandUpdater* command_updater,
command_id_(command_id), command_id_(command_id),
active_(false), active_(false),
suppress_mouse_released_action_(false) { suppress_mouse_released_action_(false) {
if (views::PlatformStyle::kPreferFocusRings)
focus_ring_ = views::FocusRing::Install(this);
SetBorder(views::CreateEmptyBorder( SetBorder(views::CreateEmptyBorder(
GetLayoutInsets(LOCATION_BAR_ICON_INTERIOR_PADDING))); GetLayoutInsets(LOCATION_BAR_ICON_INTERIOR_PADDING)));
if (ui::MaterialDesignController::IsNewerMaterialUi()) { if (ui::MaterialDesignController::IsNewerMaterialUi()) {
...@@ -187,7 +185,7 @@ void PageActionIconView::RemoveInkDropLayer(ui::Layer* ink_drop_layer) { ...@@ -187,7 +185,7 @@ void PageActionIconView::RemoveInkDropLayer(ui::Layer* ink_drop_layer) {
std::unique_ptr<views::InkDrop> PageActionIconView::CreateInkDrop() { std::unique_ptr<views::InkDrop> PageActionIconView::CreateInkDrop() {
std::unique_ptr<views::InkDropImpl> ink_drop = std::unique_ptr<views::InkDropImpl> ink_drop =
CreateDefaultFloodFillInkDropImpl(); CreateDefaultFloodFillInkDropImpl();
ink_drop->SetShowHighlightOnFocus(!views::PlatformStyle::kPreferFocusRings); ink_drop->SetShowHighlightOnFocus(!focus_ring());
return std::move(ink_drop); return std::move(ink_drop);
} }
......
...@@ -15,7 +15,6 @@ ...@@ -15,7 +15,6 @@
#include "ui/gfx/color_palette.h" #include "ui/gfx/color_palette.h"
#include "ui/gfx/image/image_skia.h" #include "ui/gfx/image/image_skia.h"
#include "ui/views/animation/ink_drop_host_view.h" #include "ui/views/animation/ink_drop_host_view.h"
#include "ui/views/controls/focus_ring.h"
#include "ui/views/controls/image_view.h" #include "ui/views/controls/image_view.h"
#include "ui/views/widget/widget_observer.h" #include "ui/views/widget/widget_observer.h"
...@@ -191,9 +190,6 @@ class PageActionIconView : public IconLabelBubbleView { ...@@ -191,9 +190,6 @@ class PageActionIconView : public IconLabelBubbleView {
// prevent the bubble from reshowing. // prevent the bubble from reshowing.
bool suppress_mouse_released_action_; bool suppress_mouse_released_action_;
// The focus ring used for this view.
std::unique_ptr<views::FocusRing> focus_ring_;
DISALLOW_COPY_AND_ASSIGN(PageActionIconView); DISALLOW_COPY_AND_ASSIGN(PageActionIconView);
}; };
......
...@@ -109,7 +109,7 @@ NewTabButton::NewTabButton(TabStrip* tab_strip, views::ButtonListener* listener) ...@@ -109,7 +109,7 @@ NewTabButton::NewTabButton(TabStrip* tab_strip, views::ButtonListener* listener)
set_ink_drop_visible_opacity(0.08f); set_ink_drop_visible_opacity(0.08f);
SetFocusPainter(nullptr); SetFocusPainter(nullptr);
focus_ring_ = views::FocusRing::Install(this); SetInstallFocusRingOnFocus(true);
} }
// In newer material UI, the button is placed vertically exactly in the // In newer material UI, the button is placed vertically exactly in the
...@@ -346,7 +346,7 @@ void NewTabButton::Layout() { ...@@ -346,7 +346,7 @@ void NewTabButton::Layout() {
SkPath path; SkPath path;
path.addOval(gfx::RectToSkRect(contents_bounds)); path.addOval(gfx::RectToSkRect(contents_bounds));
focus_ring_->SetPath(path); focus_ring()->SetPath(path);
} }
} }
......
...@@ -9,7 +9,6 @@ ...@@ -9,7 +9,6 @@
#include "chrome/browser/ui/views/frame/browser_view.h" #include "chrome/browser/ui/views/frame/browser_view.h"
#include "chrome/browser/ui/views/tabs/tab_strip.h" #include "chrome/browser/ui/views/tabs/tab_strip.h"
#include "ui/views/controls/button/image_button.h" #include "ui/views/controls/button/image_button.h"
#include "ui/views/controls/focus_ring.h"
#include "ui/views/view.h" #include "ui/views/view.h"
#include "ui/views/widget/widget_observer.h" #include "ui/views/widget/widget_observer.h"
...@@ -166,9 +165,6 @@ class NewTabButton : public views::ImageButton, ...@@ -166,9 +165,6 @@ class NewTabButton : public views::ImageButton,
// open and get called back when it closes. // open and get called back when it closes.
ScopedObserver<views::Widget, WidgetObserver> new_tab_promo_observer_{this}; ScopedObserver<views::Widget, WidgetObserver> new_tab_promo_observer_{this};
// The FocusRing for this new tab button.
std::unique_ptr<views::FocusRing> focus_ring_;
DISALLOW_COPY_AND_ASSIGN(NewTabButton); DISALLOW_COPY_AND_ASSIGN(NewTabButton);
}; };
......
...@@ -25,7 +25,6 @@ ...@@ -25,7 +25,6 @@
#include "ui/gfx/image/image_skia_operations.h" #include "ui/gfx/image/image_skia_operations.h"
#include "ui/gfx/paint_vector_icon.h" #include "ui/gfx/paint_vector_icon.h"
#include "ui/views/rect_based_targeting_utils.h" #include "ui/views/rect_based_targeting_utils.h"
#include "ui/views/style/platform_style.h"
#if defined(USE_AURA) #if defined(USE_AURA)
#include "ui/aura/env.h" #include "ui/aura/env.h"
...@@ -42,7 +41,6 @@ TabCloseButton::TabCloseButton(views::ButtonListener* listener, ...@@ -42,7 +41,6 @@ TabCloseButton::TabCloseButton(views::ButtonListener* listener,
// Disable animation so that the red danger sign shows up immediately // Disable animation so that the red danger sign shows up immediately
// to help avoid mis-clicks. // to help avoid mis-clicks.
SetAnimationDuration(0); SetAnimationDuration(0);
SetInstallFocusRingOnFocus(views::PlatformStyle::kPreferFocusRings);
if (focus_ring()) if (focus_ring())
SetFocusPainter(nullptr); SetFocusPainter(nullptr);
......
...@@ -34,7 +34,6 @@ ...@@ -34,7 +34,6 @@
#include "ui/views/controls/menu/menu_model_adapter.h" #include "ui/views/controls/menu/menu_model_adapter.h"
#include "ui/views/controls/menu/menu_runner.h" #include "ui/views/controls/menu/menu_runner.h"
#include "ui/views/mouse_constants.h" #include "ui/views/mouse_constants.h"
#include "ui/views/style/platform_style.h"
using views::LabelButtonBorder; using views::LabelButtonBorder;
...@@ -67,7 +66,6 @@ ToolbarActionView::ToolbarActionView( ...@@ -67,7 +66,6 @@ ToolbarActionView::ToolbarActionView(
view_controller_->SetDelegate(this); view_controller_->SetDelegate(this);
SetHorizontalAlignment(gfx::ALIGN_CENTER); SetHorizontalAlignment(gfx::ALIGN_CENTER);
set_drag_controller(delegate_); set_drag_controller(delegate_);
SetInstallFocusRingOnFocus(views::PlatformStyle::kPreferFocusRings);
set_context_menu_controller(this); set_context_menu_controller(this);
...@@ -141,7 +139,7 @@ std::unique_ptr<views::InkDrop> ToolbarActionView::CreateInkDrop() { ...@@ -141,7 +139,7 @@ std::unique_ptr<views::InkDrop> ToolbarActionView::CreateInkDrop() {
auto ink_drop = CreateToolbarInkDrop<MenuButton>(this); auto ink_drop = CreateToolbarInkDrop<MenuButton>(this);
ink_drop->SetShowHighlightOnHover(!delegate_->ShownInsideMenu()); ink_drop->SetShowHighlightOnHover(!delegate_->ShownInsideMenu());
ink_drop->SetShowHighlightOnFocus(!views::PlatformStyle::kPreferFocusRings); ink_drop->SetShowHighlightOnFocus(!focus_ring());
return ink_drop; return ink_drop;
} }
......
...@@ -25,7 +25,6 @@ ...@@ -25,7 +25,6 @@
#include "ui/views/controls/menu/menu_item_view.h" #include "ui/views/controls/menu/menu_item_view.h"
#include "ui/views/controls/menu/menu_model_adapter.h" #include "ui/views/controls/menu/menu_model_adapter.h"
#include "ui/views/controls/menu/menu_runner.h" #include "ui/views/controls/menu/menu_runner.h"
#include "ui/views/style/platform_style.h"
#include "ui/views/widget/widget.h" #include "ui/views/widget/widget.h"
ToolbarButton::ToolbarButton(views::ButtonListener* listener) ToolbarButton::ToolbarButton(views::ButtonListener* listener)
...@@ -43,7 +42,6 @@ ToolbarButton::ToolbarButton(views::ButtonListener* listener, ...@@ -43,7 +42,6 @@ ToolbarButton::ToolbarButton(views::ButtonListener* listener,
set_context_menu_controller(this); set_context_menu_controller(this);
SetInkDropMode(InkDropMode::ON); SetInkDropMode(InkDropMode::ON);
SetFocusPainter(nullptr); SetFocusPainter(nullptr);
SetInstallFocusRingOnFocus(views::PlatformStyle::kPreferFocusRings);
// Make sure icons are flipped by default so that back, forward, etc. follows // Make sure icons are flipped by default so that back, forward, etc. follows
// UI direction. // UI direction.
......
...@@ -111,6 +111,10 @@ TEST_F(ViewAXPlatformNodeDelegateTest, BoundsShouldMatch) { ...@@ -111,6 +111,10 @@ TEST_F(ViewAXPlatformNodeDelegateTest, BoundsShouldMatch) {
} }
TEST_F(ViewAXPlatformNodeDelegateTest, LabelIsChildOfButton) { TEST_F(ViewAXPlatformNodeDelegateTest, LabelIsChildOfButton) {
// Disable focus rings for this test: they introduce extra children that can
// be either before or after the label, which complicates correctness testing.
button_->SetInstallFocusRingOnFocus(false);
// |button_| is focusable, so |label_| (as its child) should be ignored. // |button_| is focusable, so |label_| (as its child) should be ignored.
EXPECT_EQ(View::FocusBehavior::ACCESSIBLE_ONLY, button_->focus_behavior()); EXPECT_EQ(View::FocusBehavior::ACCESSIBLE_ONLY, button_->focus_behavior());
EXPECT_EQ(1, button_accessibility()->GetChildCount()); EXPECT_EQ(1, button_accessibility()->GetChildCount());
......
...@@ -476,6 +476,7 @@ Button::Button(ButtonListener* listener) ...@@ -476,6 +476,7 @@ Button::Button(ButtonListener* listener)
SetFocusBehavior(FocusBehavior::ACCESSIBLE_ONLY); SetFocusBehavior(FocusBehavior::ACCESSIBLE_ONLY);
SetProperty(kIsButtonProperty, true); SetProperty(kIsButtonProperty, true);
hover_animation_.SetSlideDuration(kHoverFadeDurationMs); hover_animation_.SetSlideDuration(kHoverFadeDurationMs);
SetInstallFocusRingOnFocus(PlatformStyle::kPreferFocusRings);
} }
Button::KeyClickAction Button::GetKeyClickActionForEvent( Button::KeyClickAction Button::GetKeyClickActionForEvent(
......
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