diff options
author | jennb@chromium.org <jennb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-03-28 21:49:14 +0000 |
---|---|---|
committer | jennb@chromium.org <jennb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-03-28 21:49:14 +0000 |
commit | d4db6c702d284543ba49b63eee555bf864becb09 (patch) | |
tree | 99164f6d796fcce380f8ba83b7c74c2bf072b6d3 /views/window | |
parent | 15549947e651f2a4d9b1ec01019893ee5cc4bbbd (diff) | |
download | chromium_src-d4db6c702d284543ba49b63eee555bf864becb09.zip chromium_src-d4db6c702d284543ba49b63eee555bf864becb09.tar.gz chromium_src-d4db6c702d284543ba49b63eee555bf864becb09.tar.bz2 |
Add focused property to chrome.windows.create extension API.
Add BrowserWindow::ShowInactive.
BUG=None
TEST=Added api test. Also tested manually on CR-48.
Review URL: http://codereview.chromium.org/6688036
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@79620 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'views/window')
-rw-r--r-- | views/window/native_window.h | 3 | ||||
-rw-r--r-- | views/window/window.cc | 4 | ||||
-rw-r--r-- | views/window/window.h | 3 | ||||
-rw-r--r-- | views/window/window_gtk.cc | 2 | ||||
-rw-r--r-- | views/window/window_win.cc | 14 |
5 files changed, 24 insertions, 2 deletions
diff --git a/views/window/native_window.h b/views/window/native_window.h index a2fb965..682dd94 100644 --- a/views/window/native_window.h +++ b/views/window/native_window.h @@ -30,7 +30,8 @@ class NativeWindow { public: enum ShowState { SHOW_RESTORED, - SHOW_MAXIMIZED + SHOW_MAXIMIZED, + SHOW_INACTIVE }; virtual ~NativeWindow() {} diff --git a/views/window/window.cc b/views/window/window.cc index 16d4170..77a8b42 100644 --- a/views/window/window.cc +++ b/views/window/window.cc @@ -98,6 +98,10 @@ void Window::Show() { saved_maximized_state_ = false; } +void Window::ShowInactive() { + native_window_->ShowNativeWindow(NativeWindow::SHOW_INACTIVE); +} + void Window::HideWindow() { native_window_->HideWindow(); } diff --git a/views/window/window.h b/views/window/window.h index d043dc1..ebda6f7 100644 --- a/views/window/window.h +++ b/views/window/window.h @@ -85,6 +85,9 @@ class Window : public internal::NativeWindowDelegate { // Makes the window visible. void Show(); + // Like Show(), but does not activate the window. + void ShowInactive(); + // Hides the window. This does not delete the window, it just hides it. This // always hides the window, it is separate from the stack maintained by // Push/PopForceHidden. diff --git a/views/window/window_gtk.cc b/views/window/window_gtk.cc index 2257f07..a2fb38c 100644 --- a/views/window/window_gtk.cc +++ b/views/window/window_gtk.cc @@ -248,6 +248,8 @@ gfx::Rect WindowGtk::GetRestoredBounds() const { void WindowGtk::ShowNativeWindow(ShowState state) { // No concept of maximization (yet) on ChromeOS. + if (state == NativeWindow::SHOW_INACTIVE) + gtk_window_set_focus_on_map(GetNativeWindow(), false); gtk_widget_show(GetNativeView()); } diff --git a/views/window/window_win.cc b/views/window/window_win.cc index cc0c6dd..375bf31 100644 --- a/views/window/window_win.cc +++ b/views/window/window_win.cc @@ -900,7 +900,19 @@ gfx::Rect WindowWin::GetRestoredBounds() const { } void WindowWin::ShowNativeWindow(ShowState state) { - Show(state == SHOW_MAXIMIZED ? SW_SHOWMAXIMIZED : GetShowState()); + DWORD native_show_state; + switch (state) { + case SHOW_INACTIVE: + native_show_state = SW_SHOWNOACTIVATE; + break; + case SHOW_MAXIMIZED: + native_show_state = SW_SHOWMAXIMIZED; + break; + default: + native_show_state = GetShowState(); + break; + } + Show(native_show_state); } void WindowWin::BecomeModal() { |