Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(578)

Unified Diff: ash/common/shelf/overflow_bubble.cc

Issue 2178163002: Add ink drop ripple to shelf overflow button (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ash/common/shelf/overflow_bubble.cc
diff --git a/ash/common/shelf/overflow_bubble.cc b/ash/common/shelf/overflow_bubble.cc
index eadd54e5597a976ef9ffd9c0e75b93b8b63d770e..c8828569e41364d7990c6840e743eca3baeb4c97 100644
--- a/ash/common/shelf/overflow_bubble.cc
+++ b/ash/common/shelf/overflow_bubble.cc
@@ -5,6 +5,7 @@
#include "ash/common/shelf/overflow_bubble.h"
#include "ash/common/shelf/overflow_bubble_view.h"
+#include "ash/common/shelf/overflow_button.h"
#include "ash/common/shelf/wm_shelf.h"
#include "ash/common/system/tray/tray_background_view.h"
#include "ash/common/wm_shell.h"
@@ -17,7 +18,7 @@ namespace ash {
OverflowBubble::OverflowBubble(WmShelf* wm_shelf)
: wm_shelf_(wm_shelf),
bubble_(nullptr),
- anchor_(nullptr),
+ button_(nullptr),
shelf_view_(nullptr) {
WmShell::Get()->AddPointerDownWatcher(this);
}
@@ -27,47 +28,42 @@ OverflowBubble::~OverflowBubble() {
WmShell::Get()->RemovePointerDownWatcher(this);
}
-void OverflowBubble::Show(views::View* anchor, ShelfView* shelf_view) {
+void OverflowBubble::Show(OverflowButton* button, ShelfView* shelf_view) {
Hide();
bubble_ = new OverflowBubbleView(wm_shelf_);
- bubble_->InitOverflowBubble(anchor, shelf_view);
+ bubble_->InitOverflowBubble(button, shelf_view);
shelf_view_ = shelf_view;
- anchor_ = anchor;
+ button_ = button;
TrayBackgroundView::InitializeBubbleAnimations(bubble_->GetWidget());
bubble_->GetWidget()->AddObserver(this);
bubble_->GetWidget()->Show();
+
+ button->OnOverflowBubbleShown();
}
void OverflowBubble::Hide() {
if (!IsShowing())
return;
+ OverflowButton* button = button_;
+
bubble_->GetWidget()->RemoveObserver(this);
bubble_->GetWidget()->Close();
- bubble_ = NULL;
- anchor_ = NULL;
- shelf_view_ = NULL;
-}
+ bubble_ = nullptr;
+ button_ = nullptr;
+ shelf_view_ = nullptr;
-void OverflowBubble::HideBubbleAndRefreshButton() {
- if (!IsShowing())
- return;
-
- views::View* anchor = anchor_;
- Hide();
- // Update overflow button (|anchor|) status when overflow bubble is hidden
- // by outside event of overflow button.
- anchor->SchedulePaint();
+ button->OnOverflowBubbleHidden();
}
void OverflowBubble::ProcessPressedEvent(
const gfx::Point& event_location_in_screen) {
if (IsShowing() && !shelf_view_->IsShowingMenu() &&
!bubble_->GetBoundsInScreen().Contains(event_location_in_screen) &&
- !anchor_->GetBoundsInScreen().Contains(event_location_in_screen)) {
- HideBubbleAndRefreshButton();
+ !button_->GetBoundsInScreen().Contains(event_location_in_screen)) {
+ Hide();
}
}
@@ -85,10 +81,10 @@ void OverflowBubble::OnTouchPressed(const ui::TouchEvent& event,
void OverflowBubble::OnWidgetDestroying(views::Widget* widget) {
DCHECK(widget == bubble_->GetWidget());
- bubble_ = NULL;
- anchor_ = NULL;
+ bubble_ = nullptr;
+ button_ = nullptr;
wm_shelf_->SchedulePaint();
- shelf_view_ = NULL;
+ shelf_view_ = nullptr;
}
} // namespace ash

Powered by Google App Engine
This is Rietveld 408576698