diff options
author | pkasting@chromium.org <pkasting@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-04-23 01:48:58 +0000 |
---|---|---|
committer | pkasting@chromium.org <pkasting@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-04-23 01:48:58 +0000 |
commit | a26dc3692818f34a1bb5341931ac2cd26819bb09 (patch) | |
tree | c77abccac30298c0d1b55991321466610fb9e15c /chrome/browser/cocoa | |
parent | ce53c9e6d9b9211f853e0d6f426a12b0bab6a875 (diff) | |
download | chromium_src-a26dc3692818f34a1bb5341931ac2cd26819bb09.zip chromium_src-a26dc3692818f34a1bb5341931ac2cd26819bb09.tar.gz chromium_src-a26dc3692818f34a1bb5341931ac2cd26819bb09.tar.bz2 |
Don't select all when autofocusing the location bar on New Tab creation. Users could already be typing in the omnibox before the load commits (e.g. due to a slow renderer process startup) and this typing would then be selected and overwritten.
BUG=41466
TEST=On a very slow machine, typing before a new tab finishes loading should not be selected or cleared once the tab finishes loading.
Review URL: http://codereview.chromium.org/1738004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@45406 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/cocoa')
-rw-r--r-- | chrome/browser/cocoa/browser_window_cocoa.h | 2 | ||||
-rw-r--r-- | chrome/browser/cocoa/browser_window_cocoa.mm | 4 | ||||
-rw-r--r-- | chrome/browser/cocoa/browser_window_controller.h | 2 | ||||
-rw-r--r-- | chrome/browser/cocoa/browser_window_controller.mm | 4 | ||||
-rw-r--r-- | chrome/browser/cocoa/location_bar_view_mac.h | 2 | ||||
-rw-r--r-- | chrome/browser/cocoa/location_bar_view_mac.mm | 4 | ||||
-rw-r--r-- | chrome/browser/cocoa/toolbar_controller.h | 4 | ||||
-rw-r--r-- | chrome/browser/cocoa/toolbar_controller.mm | 7 |
8 files changed, 14 insertions, 15 deletions
diff --git a/chrome/browser/cocoa/browser_window_cocoa.h b/chrome/browser/cocoa/browser_window_cocoa.h index 753a645..b0861f1 100644 --- a/chrome/browser/cocoa/browser_window_cocoa.h +++ b/chrome/browser/cocoa/browser_window_cocoa.h @@ -52,7 +52,7 @@ class BrowserWindowCocoa : public BrowserWindow, virtual bool IsFullscreen() const; virtual bool IsFullscreenBubbleVisible() const; virtual LocationBar* GetLocationBar() const; - virtual void SetFocusToLocationBar(); + virtual void SetFocusToLocationBar(bool select_all); virtual void UpdateStopGoState(bool is_loading, bool force); virtual void UpdateToolbar(TabContents* contents, bool should_restore_state); diff --git a/chrome/browser/cocoa/browser_window_cocoa.mm b/chrome/browser/cocoa/browser_window_cocoa.mm index 186ec86..7df9ee1 100644 --- a/chrome/browser/cocoa/browser_window_cocoa.mm +++ b/chrome/browser/cocoa/browser_window_cocoa.mm @@ -205,8 +205,8 @@ LocationBar* BrowserWindowCocoa::GetLocationBar() const { return [controller_ locationBarBridge]; } -void BrowserWindowCocoa::SetFocusToLocationBar() { - [controller_ focusLocationBar]; +void BrowserWindowCocoa::SetFocusToLocationBar(bool select_all) { + [controller_ focusLocationBar:select_all ? YES : NO]; } void BrowserWindowCocoa::UpdateStopGoState(bool is_loading, bool force) { diff --git a/chrome/browser/cocoa/browser_window_controller.h b/chrome/browser/cocoa/browser_window_controller.h index 975594c..08d9c46 100644 --- a/chrome/browser/cocoa/browser_window_controller.h +++ b/chrome/browser/cocoa/browser_window_controller.h @@ -178,7 +178,7 @@ class TabStripModelObserverBridge; - (void)activate; // Make the location bar the first responder, if possible. -- (void)focusLocationBar; +- (void)focusLocationBar:(BOOL)selectAll; // Make the (currently-selected) tab contents the first responder, if possible. - (void)focusTabContents; diff --git a/chrome/browser/cocoa/browser_window_controller.mm b/chrome/browser/cocoa/browser_window_controller.mm index 101807d..f482990 100644 --- a/chrome/browser/cocoa/browser_window_controller.mm +++ b/chrome/browser/cocoa/browser_window_controller.mm @@ -1111,8 +1111,8 @@ } // Make the location bar the first responder, if possible. -- (void)focusLocationBar { - [toolbarController_ focusLocationBar]; +- (void)focusLocationBar:(BOOL)selectAll { + [toolbarController_ focusLocationBar:selectAll]; } - (void)focusTabContents { diff --git a/chrome/browser/cocoa/location_bar_view_mac.h b/chrome/browser/cocoa/location_bar_view_mac.h index 2107ec3..5a82d67 100644 --- a/chrome/browser/cocoa/location_bar_view_mac.h +++ b/chrome/browser/cocoa/location_bar_view_mac.h @@ -57,7 +57,7 @@ class LocationBarViewMac : public AutocompleteEditController, virtual PageTransition::Type GetPageTransition() const; virtual void AcceptInput(); virtual void AcceptInputWithDisposition(WindowOpenDisposition disposition); - virtual void FocusLocation(); + virtual void FocusLocation(bool select_all); virtual void FocusSearch(); virtual void UpdateContentSettingsIcons(); virtual void UpdatePageActions(); diff --git a/chrome/browser/cocoa/location_bar_view_mac.mm b/chrome/browser/cocoa/location_bar_view_mac.mm index 62b12d4..dde3095 100644 --- a/chrome/browser/cocoa/location_bar_view_mac.mm +++ b/chrome/browser/cocoa/location_bar_view_mac.mm @@ -161,8 +161,8 @@ void LocationBarViewMac::AcceptInputWithDisposition( edit_view_->model()->AcceptInput(disposition, false); } -void LocationBarViewMac::FocusLocation() { - edit_view_->FocusLocation(); +void LocationBarViewMac::FocusLocation(bool select_all) { + edit_view_->FocusLocation(select_all); } void LocationBarViewMac::FocusSearch() { diff --git a/chrome/browser/cocoa/toolbar_controller.h b/chrome/browser/cocoa/toolbar_controller.h index 3c5086b..0fdd8c4 100644 --- a/chrome/browser/cocoa/toolbar_controller.h +++ b/chrome/browser/cocoa/toolbar_controller.h @@ -1,4 +1,4 @@ -// Copyright (c) 2009 The Chromium Authors. All rights reserved. +// Copyright (c) 2010 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -126,7 +126,7 @@ class ToolbarModel; - (id)customFieldEditorForObject:(id)obj; // Make the location bar the first responder, if possible. -- (void)focusLocationBar; +- (void)focusLocationBar:(BOOL)selectAll; // Updates the toolbar (and transitively the location bar) with the states of // the specified |tab|. If |shouldRestore| is true, we're switching diff --git a/chrome/browser/cocoa/toolbar_controller.mm b/chrome/browser/cocoa/toolbar_controller.mm index 0d12ee5..1412fc1 100644 --- a/chrome/browser/cocoa/toolbar_controller.mm +++ b/chrome/browser/cocoa/toolbar_controller.mm @@ -371,10 +371,9 @@ class PrefObserverBridge : public NotificationObserver { return locationBarView_.get(); } -- (void)focusLocationBar { - if (locationBarView_.get()) { - locationBarView_->FocusLocation(); - } +- (void)focusLocationBar:(BOOL)selectAll { + if (locationBarView_.get()) + locationBarView_->FocusLocation(selectAll ? true : false); } // Called when the state for a command changes to |enabled|. Update the |