summaryrefslogtreecommitdiffstats
path: root/chrome/browser/autocomplete/autocomplete_edit_view_mac.mm
diff options
context:
space:
mode:
authorisherman@chromium.org <isherman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-09-11 05:20:42 +0000
committerisherman@chromium.org <isherman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-09-11 05:20:42 +0000
commit3c11b5b02cf32fb578e0854cd6403a9fb31ba119 (patch)
tree5f03a37f991ef7fee9e159c00bd131bb1b9cc4c0 /chrome/browser/autocomplete/autocomplete_edit_view_mac.mm
parentb905fda80e430081c47243bdf93afaf2fa4dd1fd (diff)
downloadchromium_src-3c11b5b02cf32fb578e0854cd6403a9fb31ba119.zip
chromium_src-3c11b5b02cf32fb578e0854cd6403a9fb31ba119.tar.gz
chromium_src-3c11b5b02cf32fb578e0854cd6403a9fb31ba119.tar.bz2
Handle FocusSearch() when in forced search mode with leading whitespace.
BUG=29593 TEST=browser_tests --gtest_filter=AutocompleteBrowserTest.FocusSearch Review URL: http://codereview.chromium.org/3280012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@59183 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/autocomplete/autocomplete_edit_view_mac.mm')
-rw-r--r--chrome/browser/autocomplete/autocomplete_edit_view_mac.mm17
1 files changed, 15 insertions, 2 deletions
diff --git a/chrome/browser/autocomplete/autocomplete_edit_view_mac.mm b/chrome/browser/autocomplete/autocomplete_edit_view_mac.mm
index 916cefc..499b031 100644
--- a/chrome/browser/autocomplete/autocomplete_edit_view_mac.mm
+++ b/chrome/browser/autocomplete/autocomplete_edit_view_mac.mm
@@ -348,10 +348,11 @@ void AutocompleteEditViewMac::SetForcedQuery() {
FocusLocation(true);
const std::wstring current_text(GetText());
- if (current_text.empty() || (current_text[0] != '?')) {
+ const size_t start = current_text.find_first_not_of(kWhitespaceWide);
+ if (start == std::wstring::npos || (current_text[start] != '?')) {
SetUserText(L"?");
} else {
- NSRange range = NSMakeRange(1, current_text.size() - 1);
+ NSRange range = NSMakeRange(start + 1, current_text.size() - start - 1);
[[field_ currentEditor] setSelectedRange:range];
}
}
@@ -363,6 +364,18 @@ bool AutocompleteEditViewMac::IsSelectAll() {
return NSEqualRanges(all_range, GetSelectedRange());
}
+void AutocompleteEditViewMac::GetSelectionBounds(std::wstring::size_type* start,
+ std::wstring::size_type* end) {
+ if (![field_ currentEditor]) {
+ *start = *end = 0;
+ return;
+ }
+
+ const NSRange selected_range = GetSelectedRange();
+ *start = static_cast<size_t>(selected_range.location);
+ *end = static_cast<size_t>(NSMaxRange(selected_range));
+}
+
void AutocompleteEditViewMac::SelectAll(bool reversed) {
// TODO(shess): Figure out what |reversed| implies. The gtk version
// has it imply inverting the selection front to back, but I don't