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

Side by Side Diff: chrome/browser/ui/cocoa/omnibox/omnibox_view_mac.mm

Issue 12792013: Instant extended: Remove suggest commit on lost focus (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 8 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/cocoa/omnibox/omnibox_view_mac.h" 5 #include "chrome/browser/ui/cocoa/omnibox/omnibox_view_mac.h"
6 6
7 #include <Carbon/Carbon.h> // kVK_Return 7 #include <Carbon/Carbon.h> // kVK_Return
8 8
9 #include "base/mac/foundation_util.h" 9 #include "base/mac/foundation_util.h"
10 #include "base/string_util.h" 10 #include "base/string_util.h"
(...skipping 351 matching lines...) Expand 10 before | Expand all | Expand 10 after
362 FocusLocation(false); 362 FocusLocation(false);
363 model()->SetCaretVisibility(true); 363 model()->SetCaretVisibility(true);
364 } 364 }
365 365
366 void OmniboxViewMac::ApplyCaretVisibility() { 366 void OmniboxViewMac::ApplyCaretVisibility() {
367 [[field_ cell] setHideFocusState:!model()->is_caret_visible() 367 [[field_ cell] setHideFocusState:!model()->is_caret_visible()
368 ofView:field_]; 368 ofView:field_];
369 } 369 }
370 370
371 void OmniboxViewMac::SetText(const string16& display_text) { 371 void OmniboxViewMac::SetText(const string16& display_text) {
372 // If we are setting the text directly, there cannot be any suggest text.
373 SetInstantSuggestion(string16());
374 SetTextInternal(display_text); 372 SetTextInternal(display_text);
375 } 373 }
376 374
377 void OmniboxViewMac::SetTextInternal(const string16& display_text) { 375 void OmniboxViewMac::SetTextInternal(const string16& display_text) {
378 NSString* ss = base::SysUTF16ToNSString(display_text); 376 NSString* ss = base::SysUTF16ToNSString(display_text);
379 NSMutableAttributedString* as = 377 NSMutableAttributedString* as =
380 [[[NSMutableAttributedString alloc] initWithString:ss] autorelease]; 378 [[[NSMutableAttributedString alloc] initWithString:ss] autorelease];
381 379
382 ApplyTextAttributes(display_text, as); 380 ApplyTextAttributes(display_text, as);
383 [field_ setAttributedStringValue:as]; 381 [field_ setAttributedStringValue:as];
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
488 range:ComponentToNSRange(scheme)]; 486 range:ComponentToNSRange(scheme)];
489 } 487 }
490 } 488 }
491 489
492 void OmniboxViewMac::OnTemporaryTextMaybeChanged(const string16& display_text, 490 void OmniboxViewMac::OnTemporaryTextMaybeChanged(const string16& display_text,
493 bool save_original_selection, 491 bool save_original_selection,
494 bool notify_text_changed) { 492 bool notify_text_changed) {
495 if (save_original_selection) 493 if (save_original_selection)
496 saved_temporary_selection_ = GetSelectedRange(); 494 saved_temporary_selection_ = GetSelectedRange();
497 495
498 SetInstantSuggestion(string16());
499 SetWindowTextAndCaretPos(display_text, display_text.size(), false, false); 496 SetWindowTextAndCaretPos(display_text, display_text.size(), false, false);
500 if (notify_text_changed) 497 if (notify_text_changed)
501 model()->OnChanged(); 498 model()->OnChanged();
502 [field_ clearUndoChain]; 499 [field_ clearUndoChain];
503 } 500 }
504 501
505 void OmniboxViewMac::OnStartingIME() {
506 // Reset the suggest text just before starting an IME composition session,
507 // otherwise the IME composition may be interrupted when the suggest text
508 // gets reset by the IME composition change.
509 SetInstantSuggestion(string16());
510 }
511
512 bool OmniboxViewMac::OnInlineAutocompleteTextMaybeChanged( 502 bool OmniboxViewMac::OnInlineAutocompleteTextMaybeChanged(
513 const string16& display_text, 503 const string16& display_text,
514 size_t user_text_length) { 504 size_t user_text_length) {
515 // TODO(shess): Make sure that this actually works. The round trip 505 // TODO(shess): Make sure that this actually works. The round trip
516 // to native form and back may mean that it's the same but not the 506 // to native form and back may mean that it's the same but not the
517 // same. 507 // same.
518 if (display_text == GetText()) 508 if (display_text == GetText())
519 return false; 509 return false;
520 510
521 DCHECK_LE(user_text_length, display_text.size()); 511 DCHECK_LE(user_text_length, display_text.size());
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after
652 void OmniboxViewMac::OnDidChange() { 642 void OmniboxViewMac::OnDidChange() {
653 // Figure out what changed and notify the model. 643 // Figure out what changed and notify the model.
654 OnAfterPossibleChange(); 644 OnAfterPossibleChange();
655 } 645 }
656 646
657 void OmniboxViewMac::OnDidEndEditing() { 647 void OmniboxViewMac::OnDidEndEditing() {
658 ClosePopup(); 648 ClosePopup();
659 } 649 }
660 650
661 bool OmniboxViewMac::OnDoCommandBySelector(SEL cmd) { 651 bool OmniboxViewMac::OnDoCommandBySelector(SEL cmd) {
662 if (cmd != @selector(moveRight:) &&
663 cmd != @selector(insertTab:) &&
664 cmd != @selector(insertTabIgnoringFieldEditor:)) {
665 // Reset the suggest text for any change other than key right or tab.
666 // TODO(rohitrao): This is here to prevent complications when editing text.
667 // See if this can be removed.
668 SetInstantSuggestion(string16());
669 }
670
671 if (cmd == @selector(deleteForward:)) 652 if (cmd == @selector(deleteForward:))
672 delete_was_pressed_ = true; 653 delete_was_pressed_ = true;
673 654
674 if (cmd == @selector(moveDown:)) { 655 if (cmd == @selector(moveDown:)) {
675 model()->OnUpOrDownKeyPressed(1); 656 model()->OnUpOrDownKeyPressed(1);
676 return true; 657 return true;
677 } 658 }
678 659
679 if (cmd == @selector(moveUp:)) { 660 if (cmd == @selector(moveUp:)) {
680 model()->OnUpOrDownKeyPressed(-1); 661 model()->OnUpOrDownKeyPressed(-1);
(...skipping 306 matching lines...) Expand 10 before | Expand all | Expand 10 after
987 968
988 NSUInteger OmniboxViewMac::GetTextLength() const { 969 NSUInteger OmniboxViewMac::GetTextLength() const {
989 return [field_ currentEditor] ? [[[field_ currentEditor] string] length] : 970 return [field_ currentEditor] ? [[[field_ currentEditor] string] length] :
990 [[field_ stringValue] length]; 971 [[field_ stringValue] length];
991 } 972 }
992 973
993 bool OmniboxViewMac::IsCaretAtEnd() const { 974 bool OmniboxViewMac::IsCaretAtEnd() const {
994 const NSRange selection = GetSelectedRange(); 975 const NSRange selection = GetSelectedRange();
995 return NSMaxRange(selection) == GetTextLength(); 976 return NSMaxRange(selection) == GetTextLength();
996 } 977 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/cocoa/omnibox/omnibox_view_mac.h ('k') | chrome/browser/ui/omnibox/omnibox_edit_model.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698