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

Side by Side Diff: chrome/browser/ui/views/extensions/extension_popup.cc

Issue 11644006: Fix bug where extension popups would not properly receive input focus when (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/views/extensions/extension_popup.h" 5 #include "chrome/browser/ui/views/extensions/extension_popup.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/message_loop.h" 8 #include "base/message_loop.h"
9 #include "chrome/browser/debugger/devtools_window.h" 9 #include "chrome/browser/debugger/devtools_window.h"
10 #include "chrome/browser/extensions/extension_process_manager.h" 10 #include "chrome/browser/extensions/extension_process_manager.h"
(...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after
198 // and not show. This seems to happen in single-process mode. 198 // and not show. This seems to happen in single-process mode.
199 if (host->did_stop_loading()) 199 if (host->did_stop_loading())
200 popup->ShowBubble(); 200 popup->ShowBubble();
201 201
202 return popup; 202 return popup;
203 } 203 }
204 204
205 void ExtensionPopup::ShowBubble() { 205 void ExtensionPopup::ShowBubble() {
206 Show(); 206 Show();
207 207
208 // Request focus for the View. Without this, the FocusManager gets confused.
209 host()->view()->SetVisible(true);
210 host()->view()->RequestFocus();
211
208 // Focus on the host contents when the bubble is first shown. 212 // Focus on the host contents when the bubble is first shown.
209 host()->host_contents()->Focus(); 213 host()->host_contents()->Focus();
210 214
211 // Listen for widget focus changes after showing (used for non-aura win). 215 // Listen for widget focus changes after showing (used for non-aura win).
212 views::WidgetFocusManager::GetInstance()->AddFocusChangeListener(this); 216 views::WidgetFocusManager::GetInstance()->AddFocusChangeListener(this);
213 217
214 if (inspect_with_devtools_) { 218 if (inspect_with_devtools_) {
215 DevToolsWindow::ToggleDevToolsWindow(host()->render_view_host(), 219 DevToolsWindow::ToggleDevToolsWindow(host()->render_view_host(),
216 true, 220 true,
217 DEVTOOLS_TOGGLE_ACTION_SHOW_CONSOLE); 221 DEVTOOLS_TOGGLE_ACTION_SHOW_CONSOLE);
218 } 222 }
219 } 223 }
220 224
221 void ExtensionPopup::CloseBubble() { 225 void ExtensionPopup::CloseBubble() {
222 GetWidget()->Close(); 226 GetWidget()->Close();
223 } 227 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698