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

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: Moved TestInkDrop to test_ink_drop_delegate.cc. Added code comments. 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..5f7cd4f9fd671e9ba9c9c43dab1fc7f1ee0e4b35 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
bruthig 2016/06/02 16:49:54 nit: formatting/indent. I find running 'git cl fo
+//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 {

Powered by Google App Engine
This is Rietveld 408576698