summaryrefslogtreecommitdiff
path: root/chromium/ui/message_center/views/message_view.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/ui/message_center/views/message_view.cc')
-rw-r--r--chromium/ui/message_center/views/message_view.cc36
1 files changed, 21 insertions, 15 deletions
diff --git a/chromium/ui/message_center/views/message_view.cc b/chromium/ui/message_center/views/message_view.cc
index 86772103554..06de0192de7 100644
--- a/chromium/ui/message_center/views/message_view.cc
+++ b/chromium/ui/message_center/views/message_view.cc
@@ -130,21 +130,6 @@ void MessageView::CloseSwipeControl() {
slide_out_controller_.CloseSwipeControl();
}
-bool MessageView::IsCloseButtonFocused() const {
- auto* control_buttons_view = GetControlButtonsView();
- return control_buttons_view ? control_buttons_view->IsCloseButtonFocused()
- : false;
-}
-
-void MessageView::RequestFocusOnCloseButton() {
- auto* control_buttons_view = GetControlButtonsView();
- if (!control_buttons_view)
- return;
-
- control_buttons_view->RequestFocusOnCloseButton();
- UpdateControlButtonsVisibility();
-}
-
void MessageView::SetExpanded(bool expanded) {
// Not implemented by default.
}
@@ -383,6 +368,7 @@ float MessageView::GetSlideAmount() const {
void MessageView::SetSettingMode(bool setting_mode) {
setting_mode_ = setting_mode;
slide_out_controller_.set_slide_mode(CalculateSlideMode());
+ UpdateControlButtonsVisibility();
}
void MessageView::DisableSlideForcibly(bool disable) {
@@ -407,6 +393,26 @@ void MessageView::OnSnoozeButtonPressed(const ui::Event& event) {
// No default implementation for snooze.
}
+bool MessageView::ShouldShowControlButtons() const {
+#if defined(OS_CHROMEOS)
+ // Users on ChromeOS are used to the Settings and Close buttons not being
+ // visible at all times, but users on other platforms expect them to be
+ // visible.
+ auto* control_buttons_view = GetControlButtonsView();
+ return control_buttons_view &&
+ (control_buttons_view->IsAnyButtonFocused() ||
+ (GetMode() != Mode::SETTING && IsMouseHovered()));
+#else
+ return true;
+#endif
+}
+
+void MessageView::UpdateControlButtonsVisibility() {
+ auto* control_buttons_view = GetControlButtonsView();
+ if (control_buttons_view)
+ control_buttons_view->ShowButtons(ShouldShowControlButtons());
+}
+
void MessageView::SetDrawBackgroundAsActive(bool active) {
background()->SetNativeControlColor(active ? kHoveredButtonBackgroundColor
: kNotificationBackgroundColor);