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

Unified Diff: chrome/browser/ui/views/toolbar/toolbar_button.cc

Issue 1411523009: Adds OnClickCanceled callback to views::Button (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Adds NotifyReleasedWithoutClick callback to views::Button (corrections) Created 5 years, 2 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: chrome/browser/ui/views/toolbar/toolbar_button.cc
diff --git a/chrome/browser/ui/views/toolbar/toolbar_button.cc b/chrome/browser/ui/views/toolbar/toolbar_button.cc
index 33cfcd013c9dc9d0e64e3a372ebb59925614c3ab..06685c6c573762c2461e53e2e88eb85574fd211b 100644
--- a/chrome/browser/ui/views/toolbar/toolbar_button.cc
+++ b/chrome/browser/ui/views/toolbar/toolbar_button.cc
@@ -94,24 +94,21 @@ void ToolbarButton::Layout() {
}
bool ToolbarButton::OnMousePressed(const ui::MouseEvent& event) {
- if (enabled() && ShouldShowMenu() &&
- IsTriggerableEvent(event) && HitTestPoint(event.location())) {
- // Store the y pos of the mouse coordinates so we can use them later to
- // determine if the user dragged the mouse down (which should pop up the
- // drag down menu immediately, instead of waiting for the timer)
- y_position_on_lbuttondown_ = event.y();
-
- // Schedule a task that will show the menu.
- const int kMenuTimerDelay = 500;
- base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
- FROM_HERE, base::Bind(&ToolbarButton::ShowDropDownMenu,
- show_menu_factory_.GetWeakPtr(),
- ui::GetMenuSourceTypeForEvent(event)),
- base::TimeDelta::FromMilliseconds(kMenuTimerDelay));
- }
-
- // views::Button actions are only triggered by left and middle mouse clicks.
- if (event.IsLeftMouseButton() || event.IsMiddleMouseButton()) {
+ if (IsTriggerableEvent(event)) {
+ if (enabled() && ShouldShowMenu() && HitTestPoint(event.location())) {
+ // Store the y pos of the mouse coordinates so we can use them later to
+ // determine if the user dragged the mouse down (which should pop up the
+ // drag down menu immediately, instead of waiting for the timer)
+ y_position_on_lbuttondown_ = event.y();
+
+ // Schedule a task that will show the menu.
+ const int kMenuTimerDelay = 500;
+ base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
+ FROM_HERE, base::Bind(&ToolbarButton::ShowDropDownMenu,
+ show_menu_factory_.GetWeakPtr(),
+ ui::GetMenuSourceTypeForEvent(event)),
+ base::TimeDelta::FromMilliseconds(kMenuTimerDelay));
+ }
ink_drop_animation_controller_->AnimateToState(
views::InkDropState::ACTION_PENDING);
}
@@ -143,9 +140,6 @@ void ToolbarButton::OnMouseReleased(const ui::MouseEvent& event) {
if (IsTriggerableEvent(event))
show_menu_factory_.InvalidateWeakPtrs();
-
- if (!HitTestPoint(event.location()))
- ink_drop_animation_controller_->AnimateToState(views::InkDropState::HIDDEN);
}
void ToolbarButton::OnMouseCaptureLost() {
@@ -256,6 +250,11 @@ void ToolbarButton::NotifyClick(const ui::Event& event) {
views::InkDropState::QUICK_ACTION);
}
+void ToolbarButton::NotifyReleasedWithoutClick(const ui::Event& event) {
+ LabelButton::NotifyReleasedWithoutClick(event);
+ ink_drop_animation_controller_->AnimateToState(views::InkDropState::HIDDEN);
+}
+
bool ToolbarButton::ShouldShowMenu() {
return model_ != nullptr;
}

Powered by Google App Engine
This is Rietveld 408576698