OLD | NEW |
1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 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/omnibox/omnibox_edit_model.h" | 5 #include "chrome/browser/ui/omnibox/omnibox_edit_model.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <string> | 8 #include <string> |
9 | 9 |
10 #include "base/auto_reset.h" | 10 #include "base/auto_reset.h" |
(...skipping 895 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
906 // so that moving to another line and then reverting the text will restore | 906 // so that moving to another line and then reverting the text will restore |
907 // the current state properly. | 907 // the current state properly. |
908 bool save_original_selection = !has_temporary_text_; | 908 bool save_original_selection = !has_temporary_text_; |
909 has_temporary_text_ = true; | 909 has_temporary_text_ = true; |
910 const AutocompleteMatch& match = CurrentMatch(NULL); | 910 const AutocompleteMatch& match = CurrentMatch(NULL); |
911 original_url_ = match.destination_url; | 911 original_url_ = match.destination_url; |
912 view_->OnTemporaryTextMaybeChanged( | 912 view_->OnTemporaryTextMaybeChanged( |
913 DisplayTextFromUserText(match.fill_into_edit), | 913 DisplayTextFromUserText(match.fill_into_edit), |
914 save_original_selection, true); | 914 save_original_selection, true); |
915 | 915 |
916 view_->UpdatePlaceholderText(); | |
917 | |
918 content::RecordAction(base::UserMetricsAction("AcceptedKeywordHint")); | 916 content::RecordAction(base::UserMetricsAction("AcceptedKeywordHint")); |
919 UMA_HISTOGRAM_ENUMERATION(kEnteredKeywordModeHistogram, entered_method, | 917 UMA_HISTOGRAM_ENUMERATION(kEnteredKeywordModeHistogram, entered_method, |
920 ENTERED_KEYWORD_MODE_NUM_ITEMS); | 918 ENTERED_KEYWORD_MODE_NUM_ITEMS); |
921 | 919 |
922 return true; | 920 return true; |
923 } | 921 } |
924 | 922 |
925 void OmniboxEditModel::AcceptTemporaryTextAsUserText() { | 923 void OmniboxEditModel::AcceptTemporaryTextAsUserText() { |
926 InternalSetUserText(UserTextFromDisplayText(view_->GetText())); | 924 InternalSetUserText(UserTextFromDisplayText(view_->GetText())); |
927 has_temporary_text_ = false; | 925 has_temporary_text_ = false; |
(...skipping 19 matching lines...) Expand all Loading... |
947 is_keyword_hint_ = false; | 945 is_keyword_hint_ = false; |
948 view_->OnAfterPossibleChange(); | 946 view_->OnAfterPossibleChange(); |
949 just_deleted_text_ = true; // OnAfterPossibleChange() fails to clear this | 947 just_deleted_text_ = true; // OnAfterPossibleChange() fails to clear this |
950 // since the edit contents have actually grown | 948 // since the edit contents have actually grown |
951 // longer. | 949 // longer. |
952 } else { | 950 } else { |
953 is_keyword_hint_ = true; | 951 is_keyword_hint_ = true; |
954 view_->SetWindowTextAndCaretPos(window_text.c_str(), keyword_.length(), | 952 view_->SetWindowTextAndCaretPos(window_text.c_str(), keyword_.length(), |
955 false, true); | 953 false, true); |
956 } | 954 } |
957 | |
958 view_->UpdatePlaceholderText(); | |
959 } | 955 } |
960 | 956 |
961 void OmniboxEditModel::OnSetFocus(bool control_down) { | 957 void OmniboxEditModel::OnSetFocus(bool control_down) { |
962 last_omnibox_focus_ = base::TimeTicks::Now(); | 958 last_omnibox_focus_ = base::TimeTicks::Now(); |
963 user_input_since_focus_ = false; | 959 user_input_since_focus_ = false; |
964 | 960 |
965 // If the omnibox lost focus while the caret was hidden and then regained | 961 // If the omnibox lost focus while the caret was hidden and then regained |
966 // focus, OnSetFocus() is called and should restore visibility. Note that | 962 // focus, OnSetFocus() is called and should restore visibility. Note that |
967 // focus can be regained without an accompanying call to | 963 // focus can be regained without an accompanying call to |
968 // OmniboxView::SetFocus(), e.g. by tabbing in. | 964 // OmniboxView::SetFocus(), e.g. by tabbing in. |
(...skipping 289 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1258 // if the user hit space in mid-string after a keyword. | 1254 // if the user hit space in mid-string after a keyword. |
1259 // |allow_exact_keyword_match_| will be used by StartAutocomplete() method, | 1255 // |allow_exact_keyword_match_| will be used by StartAutocomplete() method, |
1260 // which will be called by |view_->UpdatePopup()|; so after that returns we | 1256 // which will be called by |view_->UpdatePopup()|; so after that returns we |
1261 // can safely reset this flag. | 1257 // can safely reset this flag. |
1262 allow_exact_keyword_match_ = text_differs && allow_keyword_ui_change && | 1258 allow_exact_keyword_match_ = text_differs && allow_keyword_ui_change && |
1263 !just_deleted_text && no_selection && | 1259 !just_deleted_text && no_selection && |
1264 CreatedKeywordSearchByInsertingSpaceInMiddle(old_text, user_text_, | 1260 CreatedKeywordSearchByInsertingSpaceInMiddle(old_text, user_text_, |
1265 selection_start); | 1261 selection_start); |
1266 view_->UpdatePopup(); | 1262 view_->UpdatePopup(); |
1267 if (allow_exact_keyword_match_) { | 1263 if (allow_exact_keyword_match_) { |
1268 view_->UpdatePlaceholderText(); | |
1269 UMA_HISTOGRAM_ENUMERATION(kEnteredKeywordModeHistogram, | 1264 UMA_HISTOGRAM_ENUMERATION(kEnteredKeywordModeHistogram, |
1270 ENTERED_KEYWORD_MODE_VIA_SPACE_IN_MIDDLE, | 1265 ENTERED_KEYWORD_MODE_VIA_SPACE_IN_MIDDLE, |
1271 ENTERED_KEYWORD_MODE_NUM_ITEMS); | 1266 ENTERED_KEYWORD_MODE_NUM_ITEMS); |
1272 allow_exact_keyword_match_ = false; | 1267 allow_exact_keyword_match_ = false; |
1273 } | 1268 } |
1274 | 1269 |
1275 // Change to keyword mode if the user is now pressing space after a keyword | 1270 // Change to keyword mode if the user is now pressing space after a keyword |
1276 // name. Note that if this is the case, then even if there was no keyword | 1271 // name. Note that if this is the case, then even if there was no keyword |
1277 // hint when we entered this function (e.g. if the user has used space to | 1272 // hint when we entered this function (e.g. if the user has used space to |
1278 // replace some selected text that was adjoined to this keyword), there will | 1273 // replace some selected text that was adjoined to this keyword), there will |
(...skipping 227 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1506 // Update state and notify view if the omnibox has focus and the caret | 1501 // Update state and notify view if the omnibox has focus and the caret |
1507 // visibility changed. | 1502 // visibility changed. |
1508 const bool was_caret_visible = is_caret_visible(); | 1503 const bool was_caret_visible = is_caret_visible(); |
1509 focus_state_ = state; | 1504 focus_state_ = state; |
1510 if (focus_state_ != OMNIBOX_FOCUS_NONE && | 1505 if (focus_state_ != OMNIBOX_FOCUS_NONE && |
1511 is_caret_visible() != was_caret_visible) | 1506 is_caret_visible() != was_caret_visible) |
1512 view_->ApplyCaretVisibility(); | 1507 view_->ApplyCaretVisibility(); |
1513 | 1508 |
1514 delegate_->OnFocusChanged(focus_state_, reason); | 1509 delegate_->OnFocusChanged(focus_state_, reason); |
1515 } | 1510 } |
OLD | NEW |