From 921ef9abaa6c04e230104723f2d32906a8f136e1 Mon Sep 17 00:00:00 2001 From: Xiyuan Xia Date: Fri, 20 Jan 2017 10:46:47 -0800 Subject: [PATCH] Revert "Put the close button of a notification into focus chain." This reverts commit 87b724b37d6da750c2a052e88bf828bd75ab4de0 on branch 2987 to make PFQ happy. BUG=682868, 661105 TBR=yoshiki@chromium.org Review-Url: https://codereview.chromium.org/2644383002 . Cr-Commit-Position: refs/branch-heads/2987@{#4} Cr-Branched-From: ad51088c0e8776e8dcd963dbe752c4035ba6dab6-refs/heads/master@{#444943} --- .../arc_custom_notification_view.cc | 86 ++++++------------- .../arc_custom_notification_view.h | 3 - 2 files changed, 28 insertions(+), 61 deletions(-) diff --git a/ui/arc/notification/arc_custom_notification_view.cc b/ui/arc/notification/arc_custom_notification_view.cc index 8e33e369cb25f..b5ec531442141 100644 --- a/ui/arc/notification/arc_custom_notification_view.cc +++ b/ui/arc/notification/arc_custom_notification_view.cc @@ -25,9 +25,7 @@ #include "ui/views/background.h" #include "ui/views/border.h" #include "ui/views/controls/button/image_button.h" -#include "ui/views/focus/focus_manager.h" #include "ui/views/painter.h" -#include "ui/views/widget/root_view.h" #include "ui/views/widget/widget.h" #include "ui/wm/core/window_util.h" @@ -178,49 +176,6 @@ class ArcCustomNotificationView::ContentViewDelegate DISALLOW_COPY_AND_ASSIGN(ContentViewDelegate); }; -class ArcCustomNotificationView::CloseButton : public views::ImageButton { - public: - explicit CloseButton(ArcCustomNotificationView* owner) - : views::ImageButton(owner), owner_(owner) { - set_background( - views::Background::CreateSolidBackground(SK_ColorTRANSPARENT)); - SetFocusForPlatform(); - SetFocusPainter(views::Painter::CreateSolidFocusPainter( - message_center::kFocusBorderColor, gfx::Insets(1, 2, 2, 2))); - - // The sizes below are in DIPs. - constexpr int kPaddingFromBorder = 4; - constexpr int kImageSize = 16; - constexpr int kTouchExtendedPadding = - message_center::kControlButtonSize - kImageSize - kPaddingFromBorder; - SetBorder( - views::CreateEmptyBorder(kPaddingFromBorder, kTouchExtendedPadding, - kTouchExtendedPadding, kPaddingFromBorder)); - - ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance(); - SetImage(views::CustomButton::STATE_NORMAL, - rb.GetImageSkiaNamed(IDR_ARC_NOTIFICATION_CLOSE)); - set_animate_on_state_change(false); - SetAccessibleName(l10n_util::GetStringUTF16( - IDS_MESSAGE_CENTER_CLOSE_NOTIFICATION_BUTTON_ACCESSIBLE_NAME)); - SetTooltipText(l10n_util::GetStringUTF16( - IDS_MESSAGE_CENTER_CLOSE_NOTIFICATION_BUTTON_TOOLTIP)); - } - - void OnFocus() override { - views::ImageButton::OnFocus(); - owner_->UpdateCloseButtonVisiblity(); - } - - void OnBlur() override { - views::ImageButton::OnBlur(); - owner_->UpdateCloseButtonVisiblity(); - } - - private: - ArcCustomNotificationView* const owner_; -}; - ArcCustomNotificationView::ArcCustomNotificationView( ArcCustomNotificationItem* item) : item_(item), @@ -262,7 +217,34 @@ void ArcCustomNotificationView::CreateFloatingCloseButton() { if (!surface_) return; - floating_close_button_ = new CloseButton(this); + // TODO(yhanada): Make the close button get focus after the entire + // notification + floating_close_button_ = new views::ImageButton(this); + floating_close_button_->set_background( + views::Background::CreateSolidBackground(SK_ColorTRANSPARENT)); + floating_close_button_->SetFocusForPlatform(); + floating_close_button_->SetFocusPainter( + views::Painter::CreateSolidFocusPainter(message_center::kFocusBorderColor, + gfx::Insets(1, 2, 2, 2))); + + // The sizes below are in DIPs. + constexpr int kPaddingFromBorder = 4; + constexpr int kImageSize = 16; + constexpr int kTouchExtendedPadding = + message_center::kControlButtonSize - kImageSize - kPaddingFromBorder; + floating_close_button_->SetBorder( + views::CreateEmptyBorder(kPaddingFromBorder, kTouchExtendedPadding, + kTouchExtendedPadding, kPaddingFromBorder)); + + ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance(); + floating_close_button_->SetImage( + views::CustomButton::STATE_NORMAL, + rb.GetImageSkiaNamed(IDR_ARC_NOTIFICATION_CLOSE)); + floating_close_button_->set_animate_on_state_change(false); + floating_close_button_->SetAccessibleName(l10n_util::GetStringUTF16( + IDS_MESSAGE_CENTER_CLOSE_NOTIFICATION_BUTTON_ACCESSIBLE_NAME)); + floating_close_button_->SetTooltipText(l10n_util::GetStringUTF16( + IDS_MESSAGE_CENTER_CLOSE_NOTIFICATION_BUTTON_TOOLTIP)); views::Widget::InitParams params(views::Widget::InitParams::TYPE_CONTROL); params.opacity = views::Widget::InitParams::TRANSLUCENT_WINDOW; @@ -273,11 +255,6 @@ void ArcCustomNotificationView::CreateFloatingCloseButton() { floating_close_button_widget_->Init(params); floating_close_button_widget_->SetContentsView(floating_close_button_); - // Put the close button into the focus chain. - floating_close_button_widget_->SetFocusTraversableParent( - GetWidget()->GetFocusTraversable()); - floating_close_button_widget_->SetFocusTraversableParentView(this); - Layout(); } @@ -489,13 +466,6 @@ void ArcCustomNotificationView::OnBlur() { ->OnContentBlured(); } -views::FocusTraversable* ArcCustomNotificationView::GetFocusTraversable() { - if (floating_close_button_widget_) - return static_cast( - floating_close_button_widget_->GetRootView()); - return nullptr; -} - void ArcCustomNotificationView::ButtonPressed(views::Button* sender, const ui::Event& event) { if (item_ && !item_->pinned() && sender == floating_close_button_) { diff --git a/ui/arc/notification/arc_custom_notification_view.h b/ui/arc/notification/arc_custom_notification_view.h index 7eae0013b453d..e9820bedabd33 100644 --- a/ui/arc/notification/arc_custom_notification_view.h +++ b/ui/arc/notification/arc_custom_notification_view.h @@ -21,7 +21,6 @@ class NotificationSurface; } namespace views { -class FocusTraversable; class ImageButton; class Widget; } @@ -43,7 +42,6 @@ class ArcCustomNotificationView private: class ContentViewDelegate; - class CloseButton; class EventForwarder; class SlideHelper; @@ -66,7 +64,6 @@ class ArcCustomNotificationView void OnMouseExited(const ui::MouseEvent& event) override; void OnFocus() override; void OnBlur() override; - views::FocusTraversable* GetFocusTraversable() override; // views::ButtonListener void ButtonPressed(views::Button* sender, const ui::Event& event) override;