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

Side by Side Diff: chrome/browser/ui/views/omnibox/omnibox_view_views.cc

Issue 26248004: Views Textfield/Omnibox: Do not paste on Ctrl+Alt[Gr]+V or AltGr+V. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Simplify test comments. Created 7 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "chrome/browser/ui/views/omnibox/omnibox_view_views.h" 5 #include "chrome/browser/ui/views/omnibox/omnibox_view_views.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/logging.h" 8 #include "base/logging.h"
9 #include "base/strings/string_util.h" 9 #include "base/strings/string_util.h"
10 #include "base/strings/utf_string_conversions.h" 10 #include "base/strings/utf_string_conversions.h"
(...skipping 239 matching lines...) Expand 10 before | Expand all | Expand 10 after
250 } 250 }
251 select_all_on_mouse_release_ = false; 251 select_all_on_mouse_release_ = false;
252 } 252 }
253 253
254 bool OmniboxViewViews::OnKeyPressed(const ui::KeyEvent& event) { 254 bool OmniboxViewViews::OnKeyPressed(const ui::KeyEvent& event) {
255 // Skip processing of [Alt]+<num-pad digit> Unicode alt key codes. 255 // Skip processing of [Alt]+<num-pad digit> Unicode alt key codes.
256 // Otherwise, if num-lock is off, the events are handled as [Up], [Down], etc. 256 // Otherwise, if num-lock is off, the events are handled as [Up], [Down], etc.
257 if (event.IsUnicodeKeyCode()) 257 if (event.IsUnicodeKeyCode())
258 return views::Textfield::OnKeyPressed(event); 258 return views::Textfield::OnKeyPressed(event);
259 259
260 const bool shift = event.IsShiftDown();
261 const bool control = event.IsControlDown();
262 const bool alt = event.IsAltDown() || event.IsAltGrDown();
260 switch (event.key_code()) { 263 switch (event.key_code()) {
261 case ui::VKEY_RETURN: 264 case ui::VKEY_RETURN:
262 model()->AcceptInput(event.IsAltDown() ? NEW_FOREGROUND_TAB : CURRENT_TAB, 265 model()->AcceptInput(alt ? NEW_FOREGROUND_TAB : CURRENT_TAB, false);
263 false);
264 return true; 266 return true;
265 case ui::VKEY_ESCAPE: 267 case ui::VKEY_ESCAPE:
266 return model()->OnEscapeKeyPressed(); 268 return model()->OnEscapeKeyPressed();
267 case ui::VKEY_CONTROL: 269 case ui::VKEY_CONTROL:
268 model()->OnControlKeyChanged(true); 270 model()->OnControlKeyChanged(true);
269 break; 271 break;
270 case ui::VKEY_DELETE: 272 case ui::VKEY_DELETE:
271 if (event.IsShiftDown() && model()->popup_model()->IsOpen()) 273 if (shift && model()->popup_model()->IsOpen())
272 model()->popup_model()->TryDeletingCurrentItem(); 274 model()->popup_model()->TryDeletingCurrentItem();
273 break; 275 break;
274 case ui::VKEY_UP: 276 case ui::VKEY_UP:
275 model()->OnUpOrDownKeyPressed(-1); 277 model()->OnUpOrDownKeyPressed(-1);
276 return true; 278 return true;
277 case ui::VKEY_DOWN: 279 case ui::VKEY_DOWN:
278 model()->OnUpOrDownKeyPressed(1); 280 model()->OnUpOrDownKeyPressed(1);
279 return true; 281 return true;
280 case ui::VKEY_PRIOR: 282 case ui::VKEY_PRIOR:
281 if (event.IsControlDown() || event.IsAltDown() || 283 if (control || alt || shift)
282 event.IsShiftDown()) {
283 return false; 284 return false;
284 }
285 model()->OnUpOrDownKeyPressed(-1 * model()->result().size()); 285 model()->OnUpOrDownKeyPressed(-1 * model()->result().size());
286 return true; 286 return true;
287 case ui::VKEY_NEXT: 287 case ui::VKEY_NEXT:
288 if (event.IsControlDown() || event.IsAltDown() || 288 if (control || alt || shift)
289 event.IsShiftDown()) {
290 return false; 289 return false;
291 }
292 model()->OnUpOrDownKeyPressed(model()->result().size()); 290 model()->OnUpOrDownKeyPressed(model()->result().size());
293 return true; 291 return true;
294 case ui::VKEY_V: 292 case ui::VKEY_V:
295 if (event.IsControlDown() && !read_only()) { 293 if (control && !alt && !read_only()) {
296 OnBeforePossibleChange(); 294 OnBeforePossibleChange();
297 OnPaste(); 295 OnPaste();
298 OnAfterPossibleChange(); 296 OnAfterPossibleChange();
299 return true; 297 return true;
300 } 298 }
301 break; 299 break;
302 default: 300 default:
303 break; 301 break;
304 } 302 }
305 303
(...skipping 650 matching lines...) Expand 10 before | Expand all | Expand 10 after
956 const string16 text(GetClipboardText()); 954 const string16 text(GetClipboardText());
957 if (!text.empty()) { 955 if (!text.empty()) {
958 // Record this paste, so we can do different behavior. 956 // Record this paste, so we can do different behavior.
959 model()->on_paste(); 957 model()->on_paste();
960 // Force a Paste operation to trigger the text_changed code in 958 // Force a Paste operation to trigger the text_changed code in
961 // OnAfterPossibleChange(), even if identical contents are pasted. 959 // OnAfterPossibleChange(), even if identical contents are pasted.
962 text_before_change_.clear(); 960 text_before_change_.clear();
963 InsertOrReplaceText(text); 961 InsertOrReplaceText(text);
964 } 962 }
965 } 963 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/omnibox/omnibox_view_browsertest.cc ('k') | ui/views/controls/textfield/native_textfield_views.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698