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

Unified Diff: ui/views/controls/button/custom_button.cc

Issue 2017833003: Fixes ink drop being "stuck" on when losing focus. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Formatting changes and added NOTREACHED() macro Created 4 years, 7 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: ui/views/controls/button/custom_button.cc
diff --git a/ui/views/controls/button/custom_button.cc b/ui/views/controls/button/custom_button.cc
index 7664f615332918ad415186babc7dc628cbfe803c..b4d1f8959e53a480e449e023ba9f073614deb8c9 100644
--- a/ui/views/controls/button/custom_button.cc
+++ b/ui/views/controls/button/custom_button.cc
@@ -241,12 +241,12 @@ bool CustomButton::OnKeyPressed(const ui::KeyEvent& event) {
}
bool CustomButton::OnKeyReleased(const ui::KeyEvent& event) {
- if ((state_ == STATE_DISABLED) || (event.key_code() != ui::VKEY_SPACE))
- return false;
-
- SetState(STATE_NORMAL);
- NotifyClick(event);
- return true;
+ if ((state_ == STATE_PRESSED) && (event.key_code() == ui::VKEY_SPACE)) {
+ SetState(STATE_NORMAL);
+ NotifyClick(event);
+ return true;
+ }
+ return false;
}
void CustomButton::OnGestureEvent(ui::GestureEvent* event) {
@@ -371,8 +371,17 @@ void CustomButton::ViewHierarchyChanged(
void CustomButton::OnBlur() {
Button::OnBlur();
- if (IsHotTracked())
+ if (IsHotTracked() || state_ == STATE_PRESSED) {
SetState(STATE_NORMAL);
+ if (ink_drop_delegate() &&
+ ink_drop_delegate()->GetTargetInkDropState() !=
+ views::InkDropState::HIDDEN)
+ ink_drop_delegate()->OnAction(views::InkDropState::HIDDEN);
+ // TODO(bruthig) : Fix CustomButtons to work well when multiple input
+ // methods are interacting with a button.e.g.By animating to HIDDEN here
+ // it is possible for a Mouse Release to trigger an action however there
+ // would be no visual cue to the user that this will occur.
+ }
}
bool CustomButton::ShouldShowInkDropForFocus() const {
« no previous file with comments | « ui/views/animation/test/test_ink_drop_delegate.cc ('k') | ui/views/controls/button/custom_button_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698