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

Side by Side Diff: ui/views/controls/textfield/native_textfield_views.cc

Issue 29943002: Limit display of the virtual keyboard to state changes triggered from a user gesture. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Address reviewer feedback. Created 6 years, 11 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "ui/views/controls/textfield/native_textfield_views.h" 5 #include "ui/views/controls/textfield/native_textfield_views.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <set> 8 #include <set>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after
159 159
160 void NativeTextfieldViews::OnGestureEvent(ui::GestureEvent* event) { 160 void NativeTextfieldViews::OnGestureEvent(ui::GestureEvent* event) {
161 textfield_->OnGestureEvent(event); 161 textfield_->OnGestureEvent(event);
162 if (event->handled()) 162 if (event->handled())
163 return; 163 return;
164 164
165 switch (event->type()) { 165 switch (event->type()) {
166 case ui::ET_GESTURE_TAP_DOWN: 166 case ui::ET_GESTURE_TAP_DOWN:
167 OnBeforeUserAction(); 167 OnBeforeUserAction();
168 textfield_->RequestFocus(); 168 textfield_->RequestFocus();
169 ShowImeIfNeeded();
169 // We don't deselect if the point is in the selection 170 // We don't deselect if the point is in the selection
170 // because TAP_DOWN may turn into a LONG_PRESS. 171 // because TAP_DOWN may turn into a LONG_PRESS.
171 if (!GetRenderText()->IsPointInSelection(event->location()) && 172 if (!GetRenderText()->IsPointInSelection(event->location()) &&
172 MoveCursorTo(event->location(), false)) 173 MoveCursorTo(event->location(), false))
173 SchedulePaint(); 174 SchedulePaint();
174 OnAfterUserAction(); 175 OnAfterUserAction();
175 event->SetHandled(); 176 event->SetHandled();
176 break; 177 break;
177 case ui::ET_GESTURE_SCROLL_UPDATE: 178 case ui::ET_GESTURE_SCROLL_UPDATE:
178 OnBeforeUserAction(); 179 OnBeforeUserAction();
(...skipping 424 matching lines...) Expand 10 before | Expand all | Expand 10 after
603 604
604 void NativeTextfieldViews::UpdateVerticalMargins() { 605 void NativeTextfieldViews::UpdateVerticalMargins() {
605 int top, bottom; 606 int top, bottom;
606 if (!textfield_->GetVerticalMargins(&top, &bottom)) 607 if (!textfield_->GetVerticalMargins(&top, &bottom))
607 return; 608 return;
608 gfx::Insets inset = GetInsets(); 609 gfx::Insets inset = GetInsets();
609 text_border_->SetInsets(top, inset.left(), bottom, inset.right()); 610 text_border_->SetInsets(top, inset.left(), bottom, inset.right());
610 OnBoundsChanged(GetBounds()); 611 OnBoundsChanged(GetBounds());
611 } 612 }
612 613
614 void NativeTextfieldViews::ShowImeIfNeeded() const {
615 GetInputMethod()->ShowImeIfNeeded();
616 }
617
613 bool NativeTextfieldViews::IsIMEComposing() const { 618 bool NativeTextfieldViews::IsIMEComposing() const {
614 return model_->HasCompositionText(); 619 return model_->HasCompositionText();
615 } 620 }
616 621
617 const gfx::Range& NativeTextfieldViews::GetSelectedRange() const { 622 const gfx::Range& NativeTextfieldViews::GetSelectedRange() const {
618 return GetRenderText()->selection(); 623 return GetRenderText()->selection();
619 } 624 }
620 625
621 void NativeTextfieldViews::SelectRange(const gfx::Range& range) { 626 void NativeTextfieldViews::SelectRange(const gfx::Range& range) {
622 model_->SelectRange(range); 627 model_->SelectRange(range);
(...skipping 814 matching lines...) Expand 10 before | Expand all | Expand 10 after
1437 aggregated_clicks_ = (aggregated_clicks_ % 2) + 1; 1442 aggregated_clicks_ = (aggregated_clicks_ % 2) + 1;
1438 } else { 1443 } else {
1439 aggregated_clicks_ = 0; 1444 aggregated_clicks_ = 0;
1440 } 1445 }
1441 last_click_time_ = event.time_stamp(); 1446 last_click_time_ = event.time_stamp();
1442 last_click_location_ = event.location(); 1447 last_click_location_ = event.location();
1443 } 1448 }
1444 } 1449 }
1445 1450
1446 void NativeTextfieldViews::HandleMousePressEvent(const ui::MouseEvent& event) { 1451 void NativeTextfieldViews::HandleMousePressEvent(const ui::MouseEvent& event) {
1447 if (event.IsOnlyLeftMouseButton() || event.IsOnlyRightMouseButton()) 1452 if (event.IsOnlyLeftMouseButton() || event.IsOnlyRightMouseButton()) {
1448 textfield_->RequestFocus(); 1453 textfield_->RequestFocus();
1454 ShowImeIfNeeded();
1455 }
1449 1456
1450 if (!event.IsOnlyLeftMouseButton()) 1457 if (!event.IsOnlyLeftMouseButton())
1451 return; 1458 return;
1452 1459
1453 initiating_drag_ = false; 1460 initiating_drag_ = false;
1454 bool can_drag = true; 1461 bool can_drag = true;
1455 1462
1456 switch (aggregated_clicks_) { 1463 switch (aggregated_clicks_) {
1457 case 0: 1464 case 0:
1458 if (can_drag && GetRenderText()->IsPointInSelection(event.location())) 1465 if (can_drag && GetRenderText()->IsPointInSelection(event.location()))
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
1519 if (index != -1) { 1526 if (index != -1) {
1520 obscured_reveal_timer_.Start( 1527 obscured_reveal_timer_.Start(
1521 FROM_HERE, 1528 FROM_HERE,
1522 duration, 1529 duration,
1523 base::Bind(&NativeTextfieldViews::RevealObscuredChar, 1530 base::Bind(&NativeTextfieldViews::RevealObscuredChar,
1524 base::Unretained(this), -1, base::TimeDelta())); 1531 base::Unretained(this), -1, base::TimeDelta()));
1525 } 1532 }
1526 } 1533 }
1527 1534
1528 } // namespace views 1535 } // namespace views
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698