summaryrefslogtreecommitdiffstats
path: root/chrome/browser/debugger
diff options
context:
space:
mode:
authorpfeldman@chromium.org <pfeldman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-07-06 08:00:30 +0000
committerpfeldman@chromium.org <pfeldman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-07-06 08:00:30 +0000
commit7f412a7064bbe2e0dc7f894122e17ab73f304d94 (patch)
treee263784d61db60ba72188eeea575b7839ab37182 /chrome/browser/debugger
parent03974c2b1dfdd42e34b7f242e3a804aab03bd5eb (diff)
downloadchromium_src-7f412a7064bbe2e0dc7f894122e17ab73f304d94.zip
chromium_src-7f412a7064bbe2e0dc7f894122e17ab73f304d94.tar.gz
chromium_src-7f412a7064bbe2e0dc7f894122e17ab73f304d94.tar.bz2
DevTools: preserve focus on activating dev tools window.
BUG=15912 Review URL: http://codereview.chromium.org/155068 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@19938 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/debugger')
-rw-r--r--chrome/browser/debugger/devtools_manager.cc10
-rw-r--r--chrome/browser/debugger/devtools_manager.h1
-rw-r--r--chrome/browser/debugger/devtools_window.cc8
-rw-r--r--chrome/browser/debugger/devtools_window.h1
4 files changed, 20 insertions, 0 deletions
diff --git a/chrome/browser/debugger/devtools_manager.cc b/chrome/browser/debugger/devtools_manager.cc
index 1f292b0..574e42c 100644
--- a/chrome/browser/debugger/devtools_manager.cc
+++ b/chrome/browser/debugger/devtools_manager.cc
@@ -93,6 +93,16 @@ void DevToolsManager::ForwardToDevToolsClient(RenderViewHost* inspected_rvh,
client_host->SendMessageToClient(message);
}
+void DevToolsManager::ActivateWindow(RenderViewHost* client_rvh) {
+ DevToolsClientHost* client_host = FindOnwerDevToolsClientHost(client_rvh);
+ if (!client_host) {
+ return;
+ }
+ DevToolsWindow* window = client_host->AsDevToolsWindow();
+ DCHECK(window);
+ window->Activate();
+}
+
void DevToolsManager::CloseWindow(RenderViewHost* client_rvh) {
DevToolsClientHost* client_host = FindOnwerDevToolsClientHost(client_rvh);
if (!client_host) {
diff --git a/chrome/browser/debugger/devtools_manager.h b/chrome/browser/debugger/devtools_manager.h
index af0d90e..5b6261c 100644
--- a/chrome/browser/debugger/devtools_manager.h
+++ b/chrome/browser/debugger/devtools_manager.h
@@ -47,6 +47,7 @@ class DevToolsManager : public DevToolsClientHost::CloseListener,
void ForwardToDevToolsClient(RenderViewHost* inspected_rvh,
const IPC::Message& message);
+ void ActivateWindow(RenderViewHost* client_rvn);
void CloseWindow(RenderViewHost* client_rvn);
void DockWindow(RenderViewHost* client_rvn);
void UndockWindow(RenderViewHost* client_rvn);
diff --git a/chrome/browser/debugger/devtools_window.cc b/chrome/browser/debugger/devtools_window.cc
index ee57310a..144bb74 100644
--- a/chrome/browser/debugger/devtools_window.cc
+++ b/chrome/browser/debugger/devtools_window.cc
@@ -33,6 +33,7 @@ class FloatingWindow : public DevToolsWindow,
FloatingWindow(Profile* profile);
virtual ~FloatingWindow();
virtual void Show();
+ virtual void Activate();
virtual void InspectedTabClosing();
// TabStripModelObserver implementation
@@ -49,6 +50,7 @@ class DockedWindow : public DevToolsWindow,
public:
DockedWindow(Profile* profile, BrowserWindow* window);
virtual ~DockedWindow();
+ virtual void Activate() {}
virtual void Show();
virtual void InspectedTabClosing();
@@ -216,6 +218,12 @@ FloatingWindow::FloatingWindow(Profile* profile)
FloatingWindow::~FloatingWindow() {
}
+void FloatingWindow::Activate() {
+ if (!browser_->window()->IsActive()) {
+ browser_->window()->Activate();
+ }
+}
+
void FloatingWindow::Show() {
browser_->window()->Show();
tab_contents_->view()->SetInitialFocus();
diff --git a/chrome/browser/debugger/devtools_window.h b/chrome/browser/debugger/devtools_window.h
index 8538cda..b6d4236 100644
--- a/chrome/browser/debugger/devtools_window.h
+++ b/chrome/browser/debugger/devtools_window.h
@@ -32,6 +32,7 @@ class DevToolsWindow : public DevToolsClientHost, public NotificationObserver {
virtual ~DevToolsWindow();
virtual void Show() = 0;
+ virtual void Activate() = 0;
bool is_docked() { return docked_; };
RenderViewHost* GetRenderViewHost();