| OLD | NEW |
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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/autocomplete/autocomplete_edit.h" | 5 #include "chrome/browser/autocomplete/autocomplete_edit.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 | 8 |
| 9 #include "base/basictypes.h" | 9 #include "base/basictypes.h" |
| 10 #include "base/histogram.h" | 10 #include "base/histogram.h" |
| (...skipping 481 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 492 void AutocompleteEditModel::OnControlKeyChanged(bool pressed) { | 492 void AutocompleteEditModel::OnControlKeyChanged(bool pressed) { |
| 493 // Don't change anything unless the key state is actually toggling. | 493 // Don't change anything unless the key state is actually toggling. |
| 494 if (pressed == (control_key_state_ == UP)) { | 494 if (pressed == (control_key_state_ == UP)) { |
| 495 ControlKeyState old_state = control_key_state_; | 495 ControlKeyState old_state = control_key_state_; |
| 496 control_key_state_ = pressed ? DOWN_WITHOUT_CHANGE : UP; | 496 control_key_state_ = pressed ? DOWN_WITHOUT_CHANGE : UP; |
| 497 if ((control_key_state_ == DOWN_WITHOUT_CHANGE) && has_temporary_text_) { | 497 if ((control_key_state_ == DOWN_WITHOUT_CHANGE) && has_temporary_text_) { |
| 498 // Arrowing down and then hitting control accepts the temporary text as | 498 // Arrowing down and then hitting control accepts the temporary text as |
| 499 // the input text. | 499 // the input text. |
| 500 InternalSetUserText(UserTextFromDisplayText(view_->GetText())); | 500 InternalSetUserText(UserTextFromDisplayText(view_->GetText())); |
| 501 has_temporary_text_ = false; | 501 has_temporary_text_ = false; |
| 502 if (KeywordIsSelected()) |
| 503 AcceptKeyword(); |
| 502 } | 504 } |
| 503 if ((old_state != DOWN_WITH_CHANGE) && popup_->IsOpen()) { | 505 if ((old_state != DOWN_WITH_CHANGE) && popup_->IsOpen()) { |
| 504 // Autocomplete history provider results may change, so refresh the | 506 // Autocomplete history provider results may change, so refresh the |
| 505 // popup. This will force user_input_in_progress_ to true, but if the | 507 // popup. This will force user_input_in_progress_ to true, but if the |
| 506 // popup is open, that should have already been the case. | 508 // popup is open, that should have already been the case. |
| 507 view_->UpdatePopup(); | 509 view_->UpdatePopup(); |
| 508 } | 510 } |
| 509 } | 511 } |
| 510 } | 512 } |
| 511 | 513 |
| (...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 621 if ((text_differs || selection_differs) && | 623 if ((text_differs || selection_differs) && |
| 622 (control_key_state_ == DOWN_WITHOUT_CHANGE)) { | 624 (control_key_state_ == DOWN_WITHOUT_CHANGE)) { |
| 623 control_key_state_ = DOWN_WITH_CHANGE; | 625 control_key_state_ = DOWN_WITH_CHANGE; |
| 624 if (!text_differs && !popup_->IsOpen()) | 626 if (!text_differs && !popup_->IsOpen()) |
| 625 return false; // Don't open the popup for no reason. | 627 return false; // Don't open the popup for no reason. |
| 626 } else if (!text_differs && | 628 } else if (!text_differs && |
| 627 (inline_autocomplete_text_.empty() || !selection_differs)) { | 629 (inline_autocomplete_text_.empty() || !selection_differs)) { |
| 628 return false; | 630 return false; |
| 629 } | 631 } |
| 630 | 632 |
| 631 const bool had_keyword = (keyword_ui_state_ != NO_KEYWORD) && | 633 const bool had_keyword = KeywordIsSelected(); |
| 632 !is_keyword_hint_ && !keyword_.empty(); | |
| 633 | 634 |
| 634 // Modifying the selection counts as accepting the autocompleted text. | 635 // Modifying the selection counts as accepting the autocompleted text. |
| 635 InternalSetUserText(UserTextFromDisplayText(new_text)); | 636 InternalSetUserText(UserTextFromDisplayText(new_text)); |
| 636 has_temporary_text_ = false; | 637 has_temporary_text_ = false; |
| 637 | 638 |
| 638 // Track when the user has deleted text so we won't allow inline autocomplete. | 639 // Track when the user has deleted text so we won't allow inline autocomplete. |
| 639 just_deleted_text_ = just_deleted_text; | 640 just_deleted_text_ = just_deleted_text; |
| 640 | 641 |
| 641 // Disable the fancy keyword UI if the user didn't already have a visible | 642 // Disable the fancy keyword UI if the user didn't already have a visible |
| 642 // keyword and is not at the end of the edit. This prevents us from showing | 643 // keyword and is not at the end of the edit. This prevents us from showing |
| (...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 740 AutocompleteMatch* match, | 741 AutocompleteMatch* match, |
| 741 GURL* alternate_nav_url) const { | 742 GURL* alternate_nav_url) const { |
| 742 if (popup_->IsOpen() || query_in_progress()) { | 743 if (popup_->IsOpen() || query_in_progress()) { |
| 743 popup_->InfoForCurrentSelection(match, alternate_nav_url); | 744 popup_->InfoForCurrentSelection(match, alternate_nav_url); |
| 744 } else { | 745 } else { |
| 745 profile_->GetAutocompleteClassifier()->Classify( | 746 profile_->GetAutocompleteClassifier()->Classify( |
| 746 UserTextFromDisplayText(view_->GetText()), GetDesiredTLD(), match, | 747 UserTextFromDisplayText(view_->GetText()), GetDesiredTLD(), match, |
| 747 alternate_nav_url); | 748 alternate_nav_url); |
| 748 } | 749 } |
| 749 } | 750 } |
| OLD | NEW |