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

Unified Diff: ui/views/controls/textfield/native_textfield_views.cc

Issue 9467017: Password support for NativeTextfieldViews, in the model (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 10 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/textfield/native_textfield_views.cc
diff --git a/ui/views/controls/textfield/native_textfield_views.cc b/ui/views/controls/textfield/native_textfield_views.cc
index 5fd5e246b9b73a03c2268daae9d3eca4530bbe2d..ccd75505769842d94178a5eb3248cdf69825999b 100644
--- a/ui/views/controls/textfield/native_textfield_views.cc
+++ b/ui/views/controls/textfield/native_textfield_views.cc
@@ -309,7 +309,8 @@ void NativeTextfieldViews::WriteDragDataForView(views::View* sender,
int NativeTextfieldViews::GetDragOperationsForView(views::View* sender,
const gfx::Point& p) {
- if (!textfield_->enabled() || !GetRenderText()->IsPointInSelection(p))
+ if (!textfield_->enabled() || textfield_->IsObscured() ||
+ !GetRenderText()->IsPointInSelection(p))
return ui::DragDropTypes::DRAG_NONE;
if (sender == this && !textfield_->read_only())
return ui::DragDropTypes::DRAG_MOVE | ui::DragDropTypes::DRAG_COPY;
@@ -411,7 +412,7 @@ void NativeTextfieldViews::UpdateFont() {
}
void NativeTextfieldViews::UpdateIsObscured() {
- // TODO(benrg): GetRenderText()->SetObscured(textfield_->IsObscured());
+ model_->SetObscured(textfield_->IsObscured());
OnCaretBoundsChanged();
SchedulePaint();
OnTextInputTypeChanged();
@@ -552,9 +553,9 @@ bool NativeTextfieldViews::IsCommandIdEnabled(int command_id) const {
string16 result;
switch (command_id) {
case IDS_APP_CUT:
- return editable && model_->HasSelection();
+ return editable && model_->HasSelection() && !textfield_->IsObscured();
case IDS_APP_COPY:
- return model_->HasSelection();
+ return model_->HasSelection() && !textfield_->IsObscured();
case IDS_APP_PASTE:
ViewsDelegate::views_delegate->GetClipboard()
->ReadText(ui::Clipboard::BUFFER_STANDARD, &result);
@@ -575,30 +576,28 @@ bool NativeTextfieldViews::GetAcceleratorForCommandId(int command_id,
void NativeTextfieldViews::ExecuteCommand(int command_id) {
bool text_changed = false;
- bool editable = !textfield_->read_only();
OnBeforeUserAction();
- switch (command_id) {
- case IDS_APP_CUT:
- if (editable)
+ if (IsCommandIdEnabled(command_id)) {
+ switch (command_id) {
+ case IDS_APP_CUT:
text_changed = Cut();
- break;
- case IDS_APP_COPY:
- Copy();
- break;
- case IDS_APP_PASTE:
- if (editable)
+ break;
+ case IDS_APP_COPY:
+ Copy();
+ break;
+ case IDS_APP_PASTE:
text_changed = Paste();
- break;
- case IDS_APP_DELETE:
- if (editable)
+ break;
+ case IDS_APP_DELETE:
text_changed = model_->Delete();
- break;
- case IDS_APP_SELECT_ALL:
- SelectAll();
- break;
- default:
- textfield_->GetController()->ExecuteCommand(command_id);
- break;
+ break;
+ case IDS_APP_SELECT_ALL:
+ SelectAll();
+ break;
+ default:
+ textfield_->GetController()->ExecuteCommand(command_id);
+ break;
+ }
}
// The cursor must have changed if text changed during cut/paste/delete.
@@ -838,6 +837,7 @@ bool NativeTextfieldViews::HandleKeyEvent(const KeyEvent& key_event) {
OnBeforeUserAction();
bool editable = !textfield_->read_only();
+ bool readable = !textfield_->IsObscured();
bool selection = key_event.IsShiftDown();
bool control = key_event.IsControlDown();
bool text_changed = false;
@@ -858,11 +858,11 @@ bool NativeTextfieldViews::HandleKeyEvent(const KeyEvent& key_event) {
}
break;
case ui::VKEY_X:
- if (control && editable)
+ if (control && editable && readable)
cursor_changed = text_changed = Cut();
break;
case ui::VKEY_C:
- if (control)
+ if (control && readable)
Copy();
break;
case ui::VKEY_V:
« no previous file with comments | « base/utf_offset_string_conversions_unittest.cc ('k') | ui/views/controls/textfield/native_textfield_views_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698