Change Button default focus behavior
Change Button, ImageButton, LabelButton, and ColorTrackingVectorImageButton to always focusable on non-Mac platform and accessible only for Mac. This will remove the need to override these buttons' focus behavior for normal use cases. This CL explicitly set some button's focus behavior when they don't want to platform default focus behavior. This CL also removes the DCHECKs added earlier to show the changed behavior. Bug: 1001103 Change-Id: I97ebea9c477e6155e40b09007254a51be9ee5125 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2499166 Reviewed-by: Xiyuan Xia <xiyuan@chromium.org> Reviewed-by: Trent Apted <tapted@chromium.org> Reviewed-by: Sean Topping <seantopping@chromium.org> Reviewed-by: Elly Fong-Jones <ellyjones@chromium.org> Commit-Queue: Wei Li <weili@chromium.org> Cr-Commit-Position: refs/heads/master@{#821275}
This commit is contained in:
apps/ui/views
ash
app_list
capture_mode
hud_display
login
shelf
system
accessibility
media
message_center
toast
unified
wm
chrome/browser
chromeos
ui
views
accessibility
autofill
payments
bookmarks
frame
location_bar
omnibox
tabs
chromecast/ui
ui/views
@@ -64,6 +64,7 @@ void AppWindowFrameView::Init() {
|
|||||||
close_button->SetImage(
|
close_button->SetImage(
|
||||||
views::Button::STATE_PRESSED,
|
views::Button::STATE_PRESSED,
|
||||||
rb.GetNativeImageNamed(IDR_APP_WINDOW_CLOSE_P).ToImageSkia());
|
rb.GetNativeImageNamed(IDR_APP_WINDOW_CLOSE_P).ToImageSkia());
|
||||||
|
close_button->SetFocusBehavior(FocusBehavior::ACCESSIBLE_ONLY);
|
||||||
close_button->SetAccessibleName(
|
close_button->SetAccessibleName(
|
||||||
l10n_util::GetStringUTF16(IDS_APP_ACCNAME_CLOSE));
|
l10n_util::GetStringUTF16(IDS_APP_ACCNAME_CLOSE));
|
||||||
close_button_ = AddChildView(std::move(close_button));
|
close_button_ = AddChildView(std::move(close_button));
|
||||||
@@ -80,6 +81,7 @@ void AppWindowFrameView::Init() {
|
|||||||
maximize_button->SetImage(
|
maximize_button->SetImage(
|
||||||
views::Button::STATE_DISABLED,
|
views::Button::STATE_DISABLED,
|
||||||
rb.GetNativeImageNamed(IDR_APP_WINDOW_MAXIMIZE_D).ToImageSkia());
|
rb.GetNativeImageNamed(IDR_APP_WINDOW_MAXIMIZE_D).ToImageSkia());
|
||||||
|
maximize_button->SetFocusBehavior(FocusBehavior::ACCESSIBLE_ONLY);
|
||||||
maximize_button->SetAccessibleName(
|
maximize_button->SetAccessibleName(
|
||||||
l10n_util::GetStringUTF16(IDS_APP_ACCNAME_MAXIMIZE));
|
l10n_util::GetStringUTF16(IDS_APP_ACCNAME_MAXIMIZE));
|
||||||
maximize_button_ = AddChildView(std::move(maximize_button));
|
maximize_button_ = AddChildView(std::move(maximize_button));
|
||||||
@@ -92,6 +94,7 @@ void AppWindowFrameView::Init() {
|
|||||||
restore_button->SetImage(
|
restore_button->SetImage(
|
||||||
views::Button::STATE_PRESSED,
|
views::Button::STATE_PRESSED,
|
||||||
rb.GetNativeImageNamed(IDR_APP_WINDOW_RESTORE_P).ToImageSkia());
|
rb.GetNativeImageNamed(IDR_APP_WINDOW_RESTORE_P).ToImageSkia());
|
||||||
|
restore_button->SetFocusBehavior(FocusBehavior::ACCESSIBLE_ONLY);
|
||||||
restore_button->SetAccessibleName(
|
restore_button->SetAccessibleName(
|
||||||
l10n_util::GetStringUTF16(IDS_APP_ACCNAME_RESTORE));
|
l10n_util::GetStringUTF16(IDS_APP_ACCNAME_RESTORE));
|
||||||
restore_button_ = AddChildView(std::move(restore_button));
|
restore_button_ = AddChildView(std::move(restore_button));
|
||||||
@@ -104,6 +107,7 @@ void AppWindowFrameView::Init() {
|
|||||||
minimize_button->SetImage(
|
minimize_button->SetImage(
|
||||||
views::Button::STATE_PRESSED,
|
views::Button::STATE_PRESSED,
|
||||||
rb.GetNativeImageNamed(IDR_APP_WINDOW_MINIMIZE_P).ToImageSkia());
|
rb.GetNativeImageNamed(IDR_APP_WINDOW_MINIMIZE_P).ToImageSkia());
|
||||||
|
minimize_button->SetFocusBehavior(FocusBehavior::ACCESSIBLE_ONLY);
|
||||||
minimize_button->SetAccessibleName(
|
minimize_button->SetAccessibleName(
|
||||||
l10n_util::GetStringUTF16(IDS_APP_ACCNAME_MINIMIZE));
|
l10n_util::GetStringUTF16(IDS_APP_ACCNAME_MINIMIZE));
|
||||||
minimize_button_ = AddChildView(std::move(minimize_button));
|
minimize_button_ = AddChildView(std::move(minimize_button));
|
||||||
|
@@ -52,7 +52,6 @@ class PageSwitcherButton : public views::Button {
|
|||||||
public:
|
public:
|
||||||
explicit PageSwitcherButton(bool is_root_app_grid_page_switcher)
|
explicit PageSwitcherButton(bool is_root_app_grid_page_switcher)
|
||||||
: is_root_app_grid_page_switcher_(is_root_app_grid_page_switcher) {
|
: is_root_app_grid_page_switcher_(is_root_app_grid_page_switcher) {
|
||||||
DCHECK_EQ(views::View::FocusBehavior::ACCESSIBLE_ONLY, GetFocusBehavior());
|
|
||||||
SetFocusBehavior(views::View::FocusBehavior::ACCESSIBLE_ONLY);
|
SetFocusBehavior(views::View::FocusBehavior::ACCESSIBLE_ONLY);
|
||||||
SetInkDropMode(InkDropMode::ON);
|
SetInkDropMode(InkDropMode::ON);
|
||||||
views::InstallFixedSizeCircleHighlightPathGenerator(
|
views::InstallFixedSizeCircleHighlightPathGenerator(
|
||||||
|
@@ -13,7 +13,6 @@
|
|||||||
namespace ash {
|
namespace ash {
|
||||||
|
|
||||||
SearchResultBaseView::SearchResultBaseView() {
|
SearchResultBaseView::SearchResultBaseView() {
|
||||||
DCHECK_EQ(FocusBehavior::ACCESSIBLE_ONLY, GetFocusBehavior());
|
|
||||||
SetFocusBehavior(FocusBehavior::ACCESSIBLE_ONLY);
|
SetFocusBehavior(FocusBehavior::ACCESSIBLE_ONLY);
|
||||||
SetInstallFocusRingOnFocus(false);
|
SetInstallFocusRingOnFocus(false);
|
||||||
}
|
}
|
||||||
|
@@ -161,6 +161,7 @@ CaptureLabelView::CaptureLabelView(CaptureModeSession* capture_mode_session)
|
|||||||
color_provider->GetRippleAttributes(background_color);
|
color_provider->GetRippleAttributes(background_color);
|
||||||
label_button_->SetInkDropVisibleOpacity(ripple_attributes.inkdrop_opacity);
|
label_button_->SetInkDropVisibleOpacity(ripple_attributes.inkdrop_opacity);
|
||||||
label_button_->SetInkDropBaseColor(ripple_attributes.base_color);
|
label_button_->SetInkDropBaseColor(ripple_attributes.base_color);
|
||||||
|
label_button_->SetFocusBehavior(views::View::FocusBehavior::ACCESSIBLE_ONLY);
|
||||||
|
|
||||||
label_ = AddChildView(std::make_unique<views::Label>(base::string16()));
|
label_ = AddChildView(std::make_unique<views::Label>(base::string16()));
|
||||||
label_->SetPaintToLayer();
|
label_->SetPaintToLayer();
|
||||||
|
@@ -40,7 +40,6 @@ class MinMaxButton : public views::ImageButton {
|
|||||||
/*radius=*/0));
|
/*radius=*/0));
|
||||||
SetProperty(kHUDClickHandler, HTCLIENT);
|
SetProperty(kHUDClickHandler, HTCLIENT);
|
||||||
|
|
||||||
DCHECK_EQ(views::View::FocusBehavior::ACCESSIBLE_ONLY, GetFocusBehavior());
|
|
||||||
SetFocusBehavior(views::View::FocusBehavior::ACCESSIBLE_ONLY);
|
SetFocusBehavior(views::View::FocusBehavior::ACCESSIBLE_ONLY);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -77,7 +77,6 @@ class SettingsButton : public views::ImageButton {
|
|||||||
SetBorder(views::CreateEmptyBorder(gfx::Insets(kSettingsIconBorder)));
|
SetBorder(views::CreateEmptyBorder(gfx::Insets(kSettingsIconBorder)));
|
||||||
SetProperty(kHUDClickHandler, HTCLIENT);
|
SetProperty(kHUDClickHandler, HTCLIENT);
|
||||||
|
|
||||||
DCHECK_EQ(views::View::FocusBehavior::ACCESSIBLE_ONLY, GetFocusBehavior());
|
|
||||||
SetFocusBehavior(views::View::FocusBehavior::ACCESSIBLE_ONLY);
|
SetFocusBehavior(views::View::FocusBehavior::ACCESSIBLE_ONLY);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -89,7 +89,6 @@ HUDTabButton::HUDTabButton(Style style,
|
|||||||
kSettingsIconBorder, kTabOverlayWidth + kTabTitleBorder,
|
kSettingsIconBorder, kTabOverlayWidth + kTabTitleBorder,
|
||||||
kSettingsIconBorder, kTabOverlayWidth + kTabTitleBorder));
|
kSettingsIconBorder, kTabOverlayWidth + kTabTitleBorder));
|
||||||
|
|
||||||
DCHECK_EQ(views::View::FocusBehavior::ACCESSIBLE_ONLY, GetFocusBehavior());
|
|
||||||
SetFocusBehavior(views::View::FocusBehavior::ACCESSIBLE_ONLY);
|
SetFocusBehavior(views::View::FocusBehavior::ACCESSIBLE_ONLY);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -252,7 +252,6 @@ class LoginPasswordView::EasyUnlockIcon : public views::Button {
|
|||||||
public:
|
public:
|
||||||
EasyUnlockIcon(const gfx::Size& size, int corner_radius)
|
EasyUnlockIcon(const gfx::Size& size, int corner_radius)
|
||||||
: views::Button(PressedCallback()) {
|
: views::Button(PressedCallback()) {
|
||||||
DCHECK_EQ(views::View::FocusBehavior::ACCESSIBLE_ONLY, GetFocusBehavior());
|
|
||||||
SetFocusBehavior(views::View::FocusBehavior::ACCESSIBLE_ONLY);
|
SetFocusBehavior(views::View::FocusBehavior::ACCESSIBLE_ONLY);
|
||||||
SetPreferredSize(size);
|
SetPreferredSize(size);
|
||||||
SetLayoutManager(std::make_unique<views::FillLayout>());
|
SetLayoutManager(std::make_unique<views::FillLayout>());
|
||||||
|
@@ -44,6 +44,7 @@ WindowPreview::WindowPreview(aura::Window* window,
|
|||||||
kPreviewContainerBgColor, kPreviewBorderRadius));
|
kPreviewContainerBgColor, kPreviewBorderRadius));
|
||||||
title_ = new views::Label(window->GetTitle());
|
title_ = new views::Label(window->GetTitle());
|
||||||
close_button_ = new views::ImageButton(this);
|
close_button_ = new views::ImageButton(this);
|
||||||
|
close_button_->SetFocusBehavior(FocusBehavior::ACCESSIBLE_ONLY);
|
||||||
|
|
||||||
AddChildView(preview_container_view_);
|
AddChildView(preview_container_view_);
|
||||||
AddChildView(preview_view_);
|
AddChildView(preview_view_);
|
||||||
|
@@ -39,7 +39,6 @@ SwitchAccessMenuButton::SwitchAccessMenuButton(std::string action_name,
|
|||||||
image_view_(new views::ImageView()),
|
image_view_(new views::ImageView()),
|
||||||
label_(new views::Label(l10n_util::GetStringUTF16(label_text_id),
|
label_(new views::Label(l10n_util::GetStringUTF16(label_text_id),
|
||||||
views::style::CONTEXT_BUTTON)) {
|
views::style::CONTEXT_BUTTON)) {
|
||||||
DCHECK_EQ(views::View::FocusBehavior::ACCESSIBLE_ONLY, GetFocusBehavior());
|
|
||||||
SetFocusBehavior(views::View::FocusBehavior::ACCESSIBLE_ONLY);
|
SetFocusBehavior(views::View::FocusBehavior::ACCESSIBLE_ONLY);
|
||||||
std::unique_ptr<views::BoxLayout> layout = std::make_unique<views::BoxLayout>(
|
std::unique_ptr<views::BoxLayout> layout = std::make_unique<views::BoxLayout>(
|
||||||
views::BoxLayout::Orientation::kVertical,
|
views::BoxLayout::Orientation::kVertical,
|
||||||
|
@@ -147,7 +147,6 @@ UnifiedMediaControlsView::MediaActionButton::CreateInkDropRipple() const {
|
|||||||
UnifiedMediaControlsView::UnifiedMediaControlsView(
|
UnifiedMediaControlsView::UnifiedMediaControlsView(
|
||||||
UnifiedMediaControlsController* controller)
|
UnifiedMediaControlsController* controller)
|
||||||
: views::Button(this), controller_(controller) {
|
: views::Button(this), controller_(controller) {
|
||||||
DCHECK_EQ(views::View::FocusBehavior::ACCESSIBLE_ONLY, GetFocusBehavior());
|
|
||||||
SetFocusBehavior(views::View::FocusBehavior::ACCESSIBLE_ONLY);
|
SetFocusBehavior(views::View::FocusBehavior::ACCESSIBLE_ONLY);
|
||||||
|
|
||||||
SetBackground(views::CreateRoundedRectBackground(
|
SetBackground(views::CreateRoundedRectBackground(
|
||||||
|
@@ -136,6 +136,7 @@ void NotificationSwipeControlView::ShowSettingsButton(bool show) {
|
|||||||
IDS_MESSAGE_NOTIFICATION_SETTINGS_BUTTON_ACCESSIBLE_NAME));
|
IDS_MESSAGE_NOTIFICATION_SETTINGS_BUTTON_ACCESSIBLE_NAME));
|
||||||
settings_button_->SetBackground(
|
settings_button_->SetBackground(
|
||||||
views::CreateSolidBackground(SK_ColorTRANSPARENT));
|
views::CreateSolidBackground(SK_ColorTRANSPARENT));
|
||||||
|
settings_button_->SetFocusBehavior(FocusBehavior::ACCESSIBLE_ONLY);
|
||||||
|
|
||||||
AddChildView(settings_button_);
|
AddChildView(settings_button_);
|
||||||
Layout();
|
Layout();
|
||||||
@@ -168,6 +169,7 @@ void NotificationSwipeControlView::ShowSnoozeButton(bool show) {
|
|||||||
IDS_MESSAGE_NOTIFICATION_SETTINGS_BUTTON_ACCESSIBLE_NAME));
|
IDS_MESSAGE_NOTIFICATION_SETTINGS_BUTTON_ACCESSIBLE_NAME));
|
||||||
snooze_button_->SetBackground(
|
snooze_button_->SetBackground(
|
||||||
views::CreateSolidBackground(SK_ColorTRANSPARENT));
|
views::CreateSolidBackground(SK_ColorTRANSPARENT));
|
||||||
|
snooze_button_->SetFocusBehavior(FocusBehavior::ACCESSIBLE_ONLY);
|
||||||
|
|
||||||
AddChildViewAt(snooze_button_, 0);
|
AddChildViewAt(snooze_button_, 0);
|
||||||
Layout();
|
Layout();
|
||||||
|
@@ -311,7 +311,6 @@ class NotifierViewCheckbox : public views::Checkbox {
|
|||||||
NotifierSettingsView::NotifierButton::NotifierButton(
|
NotifierSettingsView::NotifierButton::NotifierButton(
|
||||||
const NotifierMetadata& notifier)
|
const NotifierMetadata& notifier)
|
||||||
: views::Button(PressedCallback()), notifier_id_(notifier.notifier_id) {
|
: views::Button(PressedCallback()), notifier_id_(notifier.notifier_id) {
|
||||||
DCHECK_EQ(views::View::FocusBehavior::ACCESSIBLE_ONLY, GetFocusBehavior());
|
|
||||||
SetFocusBehavior(views::View::FocusBehavior::ACCESSIBLE_ONLY);
|
SetFocusBehavior(views::View::FocusBehavior::ACCESSIBLE_ONLY);
|
||||||
|
|
||||||
auto icon_view = std::make_unique<views::ImageView>();
|
auto icon_view = std::make_unique<views::ImageView>();
|
||||||
|
@@ -132,7 +132,6 @@ class ToastOverlayButton : public views::LabelButton {
|
|||||||
|
|
||||||
views::InstallRoundRectHighlightPathGenerator(this, gfx::Insets(),
|
views::InstallRoundRectHighlightPathGenerator(this, gfx::Insets(),
|
||||||
kToastCornerRounding);
|
kToastCornerRounding);
|
||||||
DCHECK_EQ(views::View::FocusBehavior::ACCESSIBLE_ONLY, GetFocusBehavior());
|
|
||||||
SetFocusBehavior(views::View::FocusBehavior::ACCESSIBLE_ONLY);
|
SetFocusBehavior(views::View::FocusBehavior::ACCESSIBLE_ONLY);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -48,7 +48,6 @@ class PageIndicatorView::PageIndicatorButton : public views::Button,
|
|||||||
public:
|
public:
|
||||||
PageIndicatorButton(UnifiedSystemTrayController* controller, int page)
|
PageIndicatorButton(UnifiedSystemTrayController* controller, int page)
|
||||||
: views::Button(this), controller_(controller), page_number_(page) {
|
: views::Button(this), controller_(controller), page_number_(page) {
|
||||||
DCHECK_EQ(views::View::FocusBehavior::ACCESSIBLE_ONLY, GetFocusBehavior());
|
|
||||||
SetFocusBehavior(views::View::FocusBehavior::ACCESSIBLE_ONLY);
|
SetFocusBehavior(views::View::FocusBehavior::ACCESSIBLE_ONLY);
|
||||||
SetInkDropMode(InkDropMode::ON);
|
SetInkDropMode(InkDropMode::ON);
|
||||||
views::InstallFixedSizeCircleHighlightPathGenerator(this, kInkDropRadius);
|
views::InstallFixedSizeCircleHighlightPathGenerator(this, kInkDropRadius);
|
||||||
|
@@ -32,7 +32,6 @@ UnifiedManagedDeviceView::UnifiedManagedDeviceView(
|
|||||||
icon_(new views::ImageView),
|
icon_(new views::ImageView),
|
||||||
label_(new views::Label),
|
label_(new views::Label),
|
||||||
controller_(controller) {
|
controller_(controller) {
|
||||||
DCHECK_EQ(views::View::FocusBehavior::ACCESSIBLE_ONLY, GetFocusBehavior());
|
|
||||||
SetFocusBehavior(views::View::FocusBehavior::ACCESSIBLE_ONLY);
|
SetFocusBehavior(views::View::FocusBehavior::ACCESSIBLE_ONLY);
|
||||||
|
|
||||||
auto* layout = SetLayoutManager(std::make_unique<views::BoxLayout>(
|
auto* layout = SetLayoutManager(std::make_unique<views::BoxLayout>(
|
||||||
|
@@ -31,7 +31,6 @@ CloseDeskButton::CloseDeskButton(views::ButtonListener* listener)
|
|||||||
SetInkDropMode(InkDropMode::ON);
|
SetInkDropMode(InkDropMode::ON);
|
||||||
SetHasInkDropActionOnClick(true);
|
SetHasInkDropActionOnClick(true);
|
||||||
SetFocusPainter(nullptr);
|
SetFocusPainter(nullptr);
|
||||||
DCHECK_EQ(views::View::FocusBehavior::ACCESSIBLE_ONLY, GetFocusBehavior());
|
|
||||||
SetFocusBehavior(views::View::FocusBehavior::ACCESSIBLE_ONLY);
|
SetFocusBehavior(views::View::FocusBehavior::ACCESSIBLE_ONLY);
|
||||||
|
|
||||||
SetEventTargeter(std::make_unique<views::ViewTargeter>(this));
|
SetEventTargeter(std::make_unique<views::ViewTargeter>(this));
|
||||||
|
@@ -218,7 +218,6 @@ DeskPreviewView::DeskPreviewView(DeskMiniView* mini_view)
|
|||||||
|
|
||||||
SetFocusPainter(nullptr);
|
SetFocusPainter(nullptr);
|
||||||
SetInkDropMode(InkDropMode::OFF);
|
SetInkDropMode(InkDropMode::OFF);
|
||||||
DCHECK_EQ(views::View::FocusBehavior::ACCESSIBLE_ONLY, GetFocusBehavior());
|
|
||||||
SetFocusBehavior(views::View::FocusBehavior::ACCESSIBLE_ONLY);
|
SetFocusBehavior(views::View::FocusBehavior::ACCESSIBLE_ONLY);
|
||||||
|
|
||||||
SetPaintToLayer(ui::LAYER_TEXTURED);
|
SetPaintToLayer(ui::LAYER_TEXTURED);
|
||||||
|
@@ -46,7 +46,6 @@ NewDeskButton::NewDeskButton(views::ButtonListener* listener)
|
|||||||
SetInkDropMode(InkDropMode::ON);
|
SetInkDropMode(InkDropMode::ON);
|
||||||
SetHasInkDropActionOnClick(true);
|
SetHasInkDropActionOnClick(true);
|
||||||
SetFocusPainter(nullptr);
|
SetFocusPainter(nullptr);
|
||||||
DCHECK_EQ(views::View::FocusBehavior::ACCESSIBLE_ONLY, GetFocusBehavior());
|
|
||||||
SetFocusBehavior(views::View::FocusBehavior::ACCESSIBLE_ONLY);
|
SetFocusBehavior(views::View::FocusBehavior::ACCESSIBLE_ONLY);
|
||||||
|
|
||||||
auto border = std::make_unique<WmHighlightItemBorder>(kCornerRadius);
|
auto border = std::make_unique<WmHighlightItemBorder>(kCornerRadius);
|
||||||
|
@@ -110,7 +110,6 @@ class OverviewCloseButton : public views::ImageButton {
|
|||||||
SetMinimumImageSize(gfx::Size(kHeaderHeightDp, kHeaderHeightDp));
|
SetMinimumImageSize(gfx::Size(kHeaderHeightDp, kHeaderHeightDp));
|
||||||
SetAccessibleName(l10n_util::GetStringUTF16(IDS_APP_ACCNAME_CLOSE));
|
SetAccessibleName(l10n_util::GetStringUTF16(IDS_APP_ACCNAME_CLOSE));
|
||||||
SetTooltipText(l10n_util::GetStringUTF16(IDS_APP_ACCNAME_CLOSE));
|
SetTooltipText(l10n_util::GetStringUTF16(IDS_APP_ACCNAME_CLOSE));
|
||||||
DCHECK_EQ(views::View::FocusBehavior::ACCESSIBLE_ONLY, GetFocusBehavior());
|
|
||||||
SetFocusBehavior(views::View::FocusBehavior::ACCESSIBLE_ONLY);
|
SetFocusBehavior(views::View::FocusBehavior::ACCESSIBLE_ONLY);
|
||||||
|
|
||||||
views::InstallFixedSizeCircleHighlightPathGenerator(
|
views::InstallFixedSizeCircleHighlightPathGenerator(
|
||||||
|
@@ -145,7 +145,6 @@ CandidateView::CandidateView(PressedCallback callback,
|
|||||||
infolist_icon_ = AddChildView(std::move(infolist_icon));
|
infolist_icon_ = AddChildView(std::move(infolist_icon));
|
||||||
}
|
}
|
||||||
|
|
||||||
DCHECK_EQ(views::View::FocusBehavior::ACCESSIBLE_ONLY, GetFocusBehavior());
|
|
||||||
SetFocusBehavior(views::View::FocusBehavior::ACCESSIBLE_ONLY);
|
SetFocusBehavior(views::View::FocusBehavior::ACCESSIBLE_ONLY);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -103,7 +103,6 @@ SuggestionView::SuggestionView(PressedCallback callback)
|
|||||||
annotation_label_ = AddChildView(CreateAnnotationLabel());
|
annotation_label_ = AddChildView(CreateAnnotationLabel());
|
||||||
annotation_label_->SetVisible(false);
|
annotation_label_->SetVisible(false);
|
||||||
|
|
||||||
DCHECK_EQ(views::View::FocusBehavior::ACCESSIBLE_ONLY, GetFocusBehavior());
|
|
||||||
SetFocusBehavior(views::View::FocusBehavior::ACCESSIBLE_ONLY);
|
SetFocusBehavior(views::View::FocusBehavior::ACCESSIBLE_ONLY);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -44,6 +44,7 @@ UndoWindow::UndoWindow(gfx::NativeView parent, AssistiveDelegate* delegate)
|
|||||||
views::LayoutProvider::Get()->GetDistanceMetric(
|
views::LayoutProvider::Get()->GetDistanceMetric(
|
||||||
views::DistanceMetric::DISTANCE_RELATED_BUTTON_HORIZONTAL));
|
views::DistanceMetric::DISTANCE_RELATED_BUTTON_HORIZONTAL));
|
||||||
undo_button_->SetBackground(nullptr);
|
undo_button_->SetBackground(nullptr);
|
||||||
|
undo_button_->SetFocusBehavior(views::View::FocusBehavior::ACCESSIBLE_ONLY);
|
||||||
}
|
}
|
||||||
|
|
||||||
void UndoWindow::OnThemeChanged() {
|
void UndoWindow::OnThemeChanged() {
|
||||||
|
@@ -174,6 +174,7 @@ void SimpleWebViewDialog::Init() {
|
|||||||
ui::EF_MIDDLE_MOUSE_BUTTON);
|
ui::EF_MIDDLE_MOUSE_BUTTON);
|
||||||
back->SetImageHorizontalAlignment(views::ImageButton::ALIGN_RIGHT);
|
back->SetImageHorizontalAlignment(views::ImageButton::ALIGN_RIGHT);
|
||||||
back->SetTooltipText(l10n_util::GetStringUTF16(IDS_TOOLTIP_BACK));
|
back->SetTooltipText(l10n_util::GetStringUTF16(IDS_TOOLTIP_BACK));
|
||||||
|
back->SetFocusBehavior(views::View::FocusBehavior::ACCESSIBLE_ONLY);
|
||||||
back->SetAccessibleName(l10n_util::GetStringUTF16(IDS_ACCNAME_BACK));
|
back->SetAccessibleName(l10n_util::GetStringUTF16(IDS_ACCNAME_BACK));
|
||||||
back->SetID(VIEW_ID_BACK_BUTTON);
|
back->SetID(VIEW_ID_BACK_BUTTON);
|
||||||
back_ = back.get();
|
back_ = back.get();
|
||||||
@@ -184,6 +185,7 @@ void SimpleWebViewDialog::Init() {
|
|||||||
forward->SetTriggerableEventFlags(ui::EF_LEFT_MOUSE_BUTTON |
|
forward->SetTriggerableEventFlags(ui::EF_LEFT_MOUSE_BUTTON |
|
||||||
ui::EF_MIDDLE_MOUSE_BUTTON);
|
ui::EF_MIDDLE_MOUSE_BUTTON);
|
||||||
forward->SetTooltipText(l10n_util::GetStringUTF16(IDS_TOOLTIP_FORWARD));
|
forward->SetTooltipText(l10n_util::GetStringUTF16(IDS_TOOLTIP_FORWARD));
|
||||||
|
forward->SetFocusBehavior(views::View::FocusBehavior::ACCESSIBLE_ONLY);
|
||||||
forward->SetAccessibleName(l10n_util::GetStringUTF16(IDS_ACCNAME_FORWARD));
|
forward->SetAccessibleName(l10n_util::GetStringUTF16(IDS_ACCNAME_FORWARD));
|
||||||
forward->SetID(VIEW_ID_FORWARD_BUTTON);
|
forward->SetID(VIEW_ID_FORWARD_BUTTON);
|
||||||
forward_ = forward.get();
|
forward_ = forward.get();
|
||||||
|
@@ -76,7 +76,6 @@ InvertBubbleView::InvertBubbleView(Browser* browser, views::View* anchor_view)
|
|||||||
kLearnMoreUrl),
|
kLearnMoreUrl),
|
||||||
vector_icons::kHelpOutlineIcon);
|
vector_icons::kHelpOutlineIcon);
|
||||||
button->SetTooltipText(l10n_util::GetStringUTF16(IDS_LEARN_MORE));
|
button->SetTooltipText(l10n_util::GetStringUTF16(IDS_LEARN_MORE));
|
||||||
DCHECK_EQ(FocusBehavior::ACCESSIBLE_ONLY, button->GetFocusBehavior());
|
|
||||||
button->SetFocusBehavior(FocusBehavior::ACCESSIBLE_ONLY);
|
button->SetFocusBehavior(FocusBehavior::ACCESSIBLE_ONLY);
|
||||||
SetExtraView(std::move(button));
|
SetExtraView(std::move(button));
|
||||||
|
|
||||||
|
@@ -199,8 +199,6 @@ MigratableCardView::GetMigratableCardDescriptionView(
|
|||||||
kTrashCanIcon);
|
kTrashCanIcon);
|
||||||
delete_card_from_local_button->SetTooltipText(l10n_util::GetStringUTF16(
|
delete_card_from_local_button->SetTooltipText(l10n_util::GetStringUTF16(
|
||||||
IDS_AUTOFILL_LOCAL_CARD_MIGRATION_DIALOG_TRASH_CAN_BUTTON_TOOLTIP));
|
IDS_AUTOFILL_LOCAL_CARD_MIGRATION_DIALOG_TRASH_CAN_BUTTON_TOOLTIP));
|
||||||
DCHECK_EQ(FocusBehavior::ACCESSIBLE_ONLY,
|
|
||||||
delete_card_from_local_button->GetFocusBehavior());
|
|
||||||
delete_card_from_local_button->SetFocusBehavior(
|
delete_card_from_local_button->SetFocusBehavior(
|
||||||
FocusBehavior::ACCESSIBLE_ONLY);
|
FocusBehavior::ACCESSIBLE_ONLY);
|
||||||
delete_card_from_local_button_ =
|
delete_card_from_local_button_ =
|
||||||
|
@@ -160,7 +160,6 @@ class BookmarkButtonBase : public views::LabelButton {
|
|||||||
SetHasInkDropActionOnClick(true);
|
SetHasInkDropActionOnClick(true);
|
||||||
SetInkDropVisibleOpacity(kToolbarInkDropVisibleOpacity);
|
SetInkDropVisibleOpacity(kToolbarInkDropVisibleOpacity);
|
||||||
|
|
||||||
DCHECK_EQ(FocusBehavior::ACCESSIBLE_ONLY, GetFocusBehavior());
|
|
||||||
SetFocusBehavior(FocusBehavior::ACCESSIBLE_ONLY);
|
SetFocusBehavior(FocusBehavior::ACCESSIBLE_ONLY);
|
||||||
|
|
||||||
show_animation_ = std::make_unique<gfx::SlideAnimation>(this);
|
show_animation_ = std::make_unique<gfx::SlideAnimation>(this);
|
||||||
|
@@ -557,6 +557,7 @@ views::Button* OpaqueBrowserFrameView::CreateImageButton(int normal_image_id,
|
|||||||
tp->GetImageSkiaNamed(hot_image_id));
|
tp->GetImageSkiaNamed(hot_image_id));
|
||||||
button->SetImage(views::Button::STATE_PRESSED,
|
button->SetImage(views::Button::STATE_PRESSED,
|
||||||
tp->GetImageSkiaNamed(pushed_image_id));
|
tp->GetImageSkiaNamed(pushed_image_id));
|
||||||
|
button->SetFocusBehavior(FocusBehavior::ACCESSIBLE_ONLY);
|
||||||
if (browser_view()->IsBrowserTypeNormal()) {
|
if (browser_view()->IsBrowserTypeNormal()) {
|
||||||
// Get a custom processed version of the theme's background image so
|
// Get a custom processed version of the theme's background image so
|
||||||
// that it appears to draw contiguously across all of the caption
|
// that it appears to draw contiguously across all of the caption
|
||||||
|
@@ -42,6 +42,7 @@ std::unique_ptr<views::ImageButton> CreateScrollButton(
|
|||||||
views::ImageButton::VerticalAlignment::ALIGN_MIDDLE);
|
views::ImageButton::VerticalAlignment::ALIGN_MIDDLE);
|
||||||
scroll_button->SetHasInkDropActionOnClick(true);
|
scroll_button->SetHasInkDropActionOnClick(true);
|
||||||
scroll_button->SetInkDropMode(views::Button::InkDropMode::ON);
|
scroll_button->SetInkDropMode(views::Button::InkDropMode::ON);
|
||||||
|
scroll_button->SetFocusBehavior(views::View::FocusBehavior::ACCESSIBLE_ONLY);
|
||||||
return scroll_button;
|
return scroll_button;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -207,6 +207,7 @@ CustomTabBarView::CustomTabBarView(BrowserView* browser_view,
|
|||||||
close_button_->SetBorder(views::CreateEmptyBorder(
|
close_button_->SetBorder(views::CreateEmptyBorder(
|
||||||
gfx::Insets(GetLayoutConstant(LOCATION_BAR_CHILD_INTERIOR_PADDING))));
|
gfx::Insets(GetLayoutConstant(LOCATION_BAR_CHILD_INTERIOR_PADDING))));
|
||||||
close_button_->SizeToPreferredSize();
|
close_button_->SizeToPreferredSize();
|
||||||
|
close_button_->SetFocusBehavior(views::View::FocusBehavior::ACCESSIBLE_ONLY);
|
||||||
views::InstallCircleHighlightPathGenerator(close_button_);
|
views::InstallCircleHighlightPathGenerator(close_button_);
|
||||||
|
|
||||||
location_icon_view_ =
|
location_icon_view_ =
|
||||||
|
@@ -143,7 +143,6 @@ IconLabelBubbleView::IconLabelBubbleView(const gfx::FontList& font_list,
|
|||||||
|
|
||||||
views::HighlightPathGenerator::Install(
|
views::HighlightPathGenerator::Install(
|
||||||
this, std::make_unique<HighlightPathGenerator>());
|
this, std::make_unique<HighlightPathGenerator>());
|
||||||
DCHECK_EQ(FocusBehavior::ACCESSIBLE_ONLY, GetFocusBehavior());
|
|
||||||
SetFocusBehavior(FocusBehavior::ACCESSIBLE_ONLY);
|
SetFocusBehavior(FocusBehavior::ACCESSIBLE_ONLY);
|
||||||
|
|
||||||
UpdateBorder();
|
UpdateBorder();
|
||||||
|
@@ -55,7 +55,6 @@ class OmniboxRemoveSuggestionButton : public views::ImageButton {
|
|||||||
: ImageButton(std::move(callback)) {
|
: ImageButton(std::move(callback)) {
|
||||||
views::ConfigureVectorImageButton(this);
|
views::ConfigureVectorImageButton(this);
|
||||||
|
|
||||||
DCHECK_EQ(FocusBehavior::ACCESSIBLE_ONLY, GetFocusBehavior());
|
|
||||||
SetFocusBehavior(FocusBehavior::ACCESSIBLE_ONLY);
|
SetFocusBehavior(FocusBehavior::ACCESSIBLE_ONLY);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -60,8 +60,6 @@ class OmniboxRowView::HeaderView : public views::View {
|
|||||||
&HeaderView::HeaderToggleButtonPressed, base::Unretained(this))));
|
&HeaderView::HeaderToggleButtonPressed, base::Unretained(this))));
|
||||||
mouse_enter_exit_handler_.ObserveMouseEnterExitOn(header_toggle_button_);
|
mouse_enter_exit_handler_.ObserveMouseEnterExitOn(header_toggle_button_);
|
||||||
views::InstallCircleHighlightPathGenerator(header_toggle_button_);
|
views::InstallCircleHighlightPathGenerator(header_toggle_button_);
|
||||||
DCHECK_EQ(FocusBehavior::ACCESSIBLE_ONLY,
|
|
||||||
header_toggle_button_->GetFocusBehavior());
|
|
||||||
header_toggle_button_->SetFocusBehavior(FocusBehavior::ACCESSIBLE_ONLY);
|
header_toggle_button_->SetFocusBehavior(FocusBehavior::ACCESSIBLE_ONLY);
|
||||||
|
|
||||||
header_toggle_button_focus_ring_ =
|
header_toggle_button_focus_ring_ =
|
||||||
|
@@ -73,7 +73,6 @@ NewTabButton::NewTabButton(TabStrip* tab_strip, PressedCallback callback)
|
|||||||
views::HighlightPathGenerator::Install(
|
views::HighlightPathGenerator::Install(
|
||||||
this, std::make_unique<NewTabButton::HighlightPathGenerator>());
|
this, std::make_unique<NewTabButton::HighlightPathGenerator>());
|
||||||
|
|
||||||
DCHECK_EQ(FocusBehavior::ACCESSIBLE_ONLY, GetFocusBehavior());
|
|
||||||
SetFocusBehavior(FocusBehavior::ACCESSIBLE_ONLY);
|
SetFocusBehavior(FocusBehavior::ACCESSIBLE_ONLY);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -239,6 +239,7 @@ std::unique_ptr<views::ImageButton> MediaControlUi::CreateImageButton(
|
|||||||
button->SetImageHorizontalAlignment(views::ImageButton::ALIGN_CENTER);
|
button->SetImageHorizontalAlignment(views::ImageButton::ALIGN_CENTER);
|
||||||
button->SetImageVerticalAlignment(views::ImageButton::ALIGN_MIDDLE);
|
button->SetImageVerticalAlignment(views::ImageButton::ALIGN_MIDDLE);
|
||||||
button->SetSize(gfx::Size(height, height));
|
button->SetSize(gfx::Size(height, height));
|
||||||
|
button->SetFocusBehavior(views::View::FocusBehavior::ACCESSIBLE_ONLY);
|
||||||
SetButtonImage(button.get(), icon);
|
SetButtonImage(button.get(), icon);
|
||||||
|
|
||||||
return button;
|
return button;
|
||||||
|
@@ -200,7 +200,7 @@ TEST_F(ViewAXPlatformNodeDelegateTest, LabelIsChildOfButton) {
|
|||||||
button_->SetInstallFocusRingOnFocus(false);
|
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_->GetFocusBehavior());
|
EXPECT_NE(View::FocusBehavior::NEVER, button_->GetFocusBehavior());
|
||||||
EXPECT_EQ(1, button_accessibility()->GetChildCount());
|
EXPECT_EQ(1, button_accessibility()->GetChildCount());
|
||||||
EXPECT_EQ(button_->GetNativeViewAccessible(),
|
EXPECT_EQ(button_->GetNativeViewAccessible(),
|
||||||
label_accessibility()->GetParent());
|
label_accessibility()->GetParent());
|
||||||
|
@@ -612,7 +612,7 @@ Button::Button(PressedCallback callback)
|
|||||||
: AnimationDelegateViews(this),
|
: AnimationDelegateViews(this),
|
||||||
callback_(std::move(callback)),
|
callback_(std::move(callback)),
|
||||||
ink_drop_base_color_(gfx::kPlaceholderColor) {
|
ink_drop_base_color_(gfx::kPlaceholderColor) {
|
||||||
SetFocusBehavior(FocusBehavior::ACCESSIBLE_ONLY);
|
SetFocusBehavior(PlatformStyle::DefaultFocusBehavior());
|
||||||
SetProperty(kIsButtonProperty, true);
|
SetProperty(kIsButtonProperty, true);
|
||||||
hover_animation_.SetSlideDuration(base::TimeDelta::FromMilliseconds(150));
|
hover_animation_.SetSlideDuration(base::TimeDelta::FromMilliseconds(150));
|
||||||
SetInstallFocusRingOnFocus(PlatformStyle::kPreferFocusRings);
|
SetInstallFocusRingOnFocus(PlatformStyle::kPreferFocusRings);
|
||||||
|
@@ -42,9 +42,8 @@ class VIEWS_EXPORT ButtonListener {
|
|||||||
virtual ~ButtonListener() = default;
|
virtual ~ButtonListener() = default;
|
||||||
};
|
};
|
||||||
|
|
||||||
// A View representing a button. A Button is not focusable by default and will
|
// A View representing a button. A Button is focusable by default and will
|
||||||
// not be part of the focus chain, unless in accessibility mode (see
|
// be part of the focus chain.
|
||||||
// SetFocusForPlatform()).
|
|
||||||
class VIEWS_EXPORT Button : public InkDropHostView,
|
class VIEWS_EXPORT Button : public InkDropHostView,
|
||||||
public AnimationDelegateViews {
|
public AnimationDelegateViews {
|
||||||
public:
|
public:
|
||||||
@@ -132,6 +131,8 @@ class VIEWS_EXPORT Button : public InkDropHostView,
|
|||||||
static ButtonState GetButtonStateFrom(ui::NativeTheme::State state);
|
static ButtonState GetButtonStateFrom(ui::NativeTheme::State state);
|
||||||
|
|
||||||
// Make the button focusable as per the platform.
|
// Make the button focusable as per the platform.
|
||||||
|
// TODO(weili): remove this as it is no longer needed since the platform
|
||||||
|
// focus behavior is the default.
|
||||||
void SetFocusForPlatform();
|
void SetFocusForPlatform();
|
||||||
|
|
||||||
void SetTooltipText(const base::string16& tooltip_text);
|
void SetTooltipText(const base::string16& tooltip_text);
|
||||||
|
@@ -34,8 +34,6 @@ ImageButton::ImageButton(PressedCallback callback)
|
|||||||
// implementation is flipped horizontally so that the button's images are
|
// implementation is flipped horizontally so that the button's images are
|
||||||
// mirrored when the UI directionality is right-to-left.
|
// mirrored when the UI directionality is right-to-left.
|
||||||
SetFlipCanvasOnPaintForRTLUI(true);
|
SetFlipCanvasOnPaintForRTLUI(true);
|
||||||
// Not focusable by default, only for accessibility.
|
|
||||||
SetFocusBehavior(FocusBehavior::ACCESSIBLE_ONLY);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ImageButton::ImageButton(ButtonListener* listener)
|
ImageButton::ImageButton(ButtonListener* listener)
|
||||||
@@ -220,7 +218,6 @@ const gfx::Point ImageButton::ComputeImagePaintPosition(
|
|||||||
|
|
||||||
ToggleImageButton::ToggleImageButton(PressedCallback callback)
|
ToggleImageButton::ToggleImageButton(PressedCallback callback)
|
||||||
: ImageButton(std::move(callback)) {
|
: ImageButton(std::move(callback)) {
|
||||||
DCHECK_EQ(FocusBehavior::ACCESSIBLE_ONLY, GetFocusBehavior());
|
|
||||||
SetFocusBehavior(FocusBehavior::ACCESSIBLE_ONLY);
|
SetFocusBehavior(FocusBehavior::ACCESSIBLE_ONLY);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -16,10 +16,6 @@
|
|||||||
|
|
||||||
namespace views {
|
namespace views {
|
||||||
|
|
||||||
// An image button.
|
|
||||||
// Note that this type of button is not focusable by default and will not be
|
|
||||||
// part of the focus chain, unless in accessibility mode. Call
|
|
||||||
// SetFocusForPlatform() to make it part of the focus chain.
|
|
||||||
class VIEWS_EXPORT ImageButton : public Button {
|
class VIEWS_EXPORT ImageButton : public Button {
|
||||||
public:
|
public:
|
||||||
METADATA_HEADER(ImageButton);
|
METADATA_HEADER(ImageButton);
|
||||||
|
@@ -7,6 +7,7 @@
|
|||||||
#include "testing/gtest/include/gtest/gtest.h"
|
#include "testing/gtest/include/gtest/gtest.h"
|
||||||
#include "ui/base/layout.h"
|
#include "ui/base/layout.h"
|
||||||
#include "ui/views/border.h"
|
#include "ui/views/border.h"
|
||||||
|
#include "ui/views/style/platform_style.h"
|
||||||
#include "ui/views/test/views_test_base.h"
|
#include "ui/views/test/views_test_base.h"
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
@@ -42,7 +43,7 @@ using ImageButtonTest = ViewsTestBase;
|
|||||||
TEST_F(ImageButtonTest, FocusBehavior) {
|
TEST_F(ImageButtonTest, FocusBehavior) {
|
||||||
ImageButton button;
|
ImageButton button;
|
||||||
|
|
||||||
EXPECT_EQ(View::FocusBehavior::ACCESSIBLE_ONLY, button.GetFocusBehavior());
|
EXPECT_EQ(PlatformStyle::DefaultFocusBehavior(), button.GetFocusBehavior());
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(ImageButtonTest, Basics) {
|
TEST_F(ImageButtonTest, Basics) {
|
||||||
|
@@ -40,8 +40,6 @@ LabelButton::LabelButton(PressedCallback callback,
|
|||||||
style::GetFont(button_context, style::STYLE_PRIMARY)),
|
style::GetFont(button_context, style::STYLE_PRIMARY)),
|
||||||
cached_default_button_font_list_(
|
cached_default_button_font_list_(
|
||||||
style::GetFont(button_context, style::STYLE_DIALOG_BUTTON_DEFAULT)) {
|
style::GetFont(button_context, style::STYLE_DIALOG_BUTTON_DEFAULT)) {
|
||||||
// Not focusable by default, only for accessibility.
|
|
||||||
SetFocusBehavior(FocusBehavior::ACCESSIBLE_ONLY);
|
|
||||||
ink_drop_container_ = AddChildView(std::make_unique<InkDropContainerView>());
|
ink_drop_container_ = AddChildView(std::make_unique<InkDropContainerView>());
|
||||||
ink_drop_container_->SetVisible(false);
|
ink_drop_container_->SetVisible(false);
|
||||||
|
|
||||||
|
@@ -30,7 +30,7 @@ namespace views {
|
|||||||
class InkDropContainerView;
|
class InkDropContainerView;
|
||||||
class LabelButtonBorder;
|
class LabelButtonBorder;
|
||||||
|
|
||||||
// LabelButton is a button with text and an icon, it's not focusable by default.
|
// LabelButton is a button with text and an icon.
|
||||||
class VIEWS_EXPORT LabelButton : public Button, public NativeThemeDelegate {
|
class VIEWS_EXPORT LabelButton : public Button, public NativeThemeDelegate {
|
||||||
public:
|
public:
|
||||||
METADATA_HEADER(LabelButton);
|
METADATA_HEADER(LabelButton);
|
||||||
|
@@ -142,9 +142,7 @@ class LabelButtonTest : public test::WidgetTest {
|
|||||||
};
|
};
|
||||||
|
|
||||||
TEST_F(LabelButtonTest, FocusBehavior) {
|
TEST_F(LabelButtonTest, FocusBehavior) {
|
||||||
LabelButton button;
|
EXPECT_EQ(PlatformStyle::DefaultFocusBehavior(), button_->GetFocusBehavior());
|
||||||
|
|
||||||
EXPECT_EQ(View::FocusBehavior::ACCESSIBLE_ONLY, button.GetFocusBehavior());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(LabelButtonTest, Init) {
|
TEST_F(LabelButtonTest, Init) {
|
||||||
|
@@ -26,7 +26,6 @@ MenuButton::MenuButton(PressedCallback callback,
|
|||||||
menu_button_controller_ = menu_button_controller.get();
|
menu_button_controller_ = menu_button_controller.get();
|
||||||
SetButtonController(std::move(menu_button_controller));
|
SetButtonController(std::move(menu_button_controller));
|
||||||
|
|
||||||
DCHECK_EQ(FocusBehavior::ACCESSIBLE_ONLY, GetFocusBehavior());
|
|
||||||
SetFocusBehavior(FocusBehavior::ACCESSIBLE_ONLY);
|
SetFocusBehavior(FocusBehavior::ACCESSIBLE_ONLY);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -73,6 +73,11 @@ gfx::Range PlatformStyle::RangeToDeleteBackwards(const base::string16& text,
|
|||||||
return gfx::Range(cursor_position, previous_grapheme_index);
|
return gfx::Range(cursor_position, previous_grapheme_index);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// static
|
||||||
|
View::FocusBehavior PlatformStyle::DefaultFocusBehavior() {
|
||||||
|
return View::FocusBehavior::ALWAYS;
|
||||||
|
}
|
||||||
|
|
||||||
#endif // OS_APPLE
|
#endif // OS_APPLE
|
||||||
|
|
||||||
#if !BUILDFLAG(ENABLE_DESKTOP_AURA) || \
|
#if !BUILDFLAG(ENABLE_DESKTOP_AURA) || \
|
||||||
|
@@ -9,6 +9,7 @@
|
|||||||
|
|
||||||
#include "base/macros.h"
|
#include "base/macros.h"
|
||||||
#include "ui/views/controls/button/button.h"
|
#include "ui/views/controls/button/button.h"
|
||||||
|
#include "ui/views/view.h"
|
||||||
#include "ui/views/views_export.h"
|
#include "ui/views/views_export.h"
|
||||||
|
|
||||||
namespace gfx {
|
namespace gfx {
|
||||||
@@ -99,6 +100,9 @@ class VIEWS_EXPORT PlatformStyle {
|
|||||||
static gfx::Range RangeToDeleteBackwards(const base::string16& text,
|
static gfx::Range RangeToDeleteBackwards(const base::string16& text,
|
||||||
size_t cursor_position);
|
size_t cursor_position);
|
||||||
|
|
||||||
|
// Returns the default focus behavior based on the platform.
|
||||||
|
static View::FocusBehavior DefaultFocusBehavior();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
DISALLOW_IMPLICIT_CONSTRUCTORS(PlatformStyle);
|
DISALLOW_IMPLICIT_CONSTRUCTORS(PlatformStyle);
|
||||||
};
|
};
|
||||||
|
@@ -81,4 +81,10 @@ gfx::Range PlatformStyle::RangeToDeleteBackwards(const base::string16& text,
|
|||||||
return gfx::Range(range_to_delete.location + range_to_delete.length,
|
return gfx::Range(range_to_delete.location + range_to_delete.length,
|
||||||
range_to_delete.location);
|
range_to_delete.location);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// static
|
||||||
|
View::FocusBehavior PlatformStyle::DefaultFocusBehavior() {
|
||||||
|
return View::FocusBehavior::ACCESSIBLE_ONLY;
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace views
|
} // namespace views
|
||||||
|
@@ -87,6 +87,7 @@ CustomFrameView::CustomFrameView(Widget* frame)
|
|||||||
if (frame_->widget_delegate()->ShouldShowWindowIcon()) {
|
if (frame_->widget_delegate()->ShouldShowWindowIcon()) {
|
||||||
window_icon_ =
|
window_icon_ =
|
||||||
AddChildView(std::make_unique<ImageButton>(Button::PressedCallback()));
|
AddChildView(std::make_unique<ImageButton>(Button::PressedCallback()));
|
||||||
|
window_icon_->SetFocusBehavior(FocusBehavior::ACCESSIBLE_ONLY);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -541,6 +542,7 @@ ImageButton* CustomFrameView::InitWindowCaptionButton(
|
|||||||
ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance();
|
ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance();
|
||||||
ImageButton* button =
|
ImageButton* button =
|
||||||
AddChildView(std::make_unique<ImageButton>(std::move(callback)));
|
AddChildView(std::make_unique<ImageButton>(std::move(callback)));
|
||||||
|
button->SetFocusBehavior(FocusBehavior::ACCESSIBLE_ONLY);
|
||||||
button->SetAccessibleName(l10n_util::GetStringUTF16(accessibility_string_id));
|
button->SetAccessibleName(l10n_util::GetStringUTF16(accessibility_string_id));
|
||||||
button->SetImage(Button::STATE_NORMAL,
|
button->SetImage(Button::STATE_NORMAL,
|
||||||
rb.GetImageNamed(normal_image_id).ToImageSkia());
|
rb.GetImageNamed(normal_image_id).ToImageSkia());
|
||||||
|
Reference in New Issue
Block a user