summaryrefslogtreecommitdiffstats
path: root/views/window
diff options
context:
space:
mode:
authorjennb@chromium.org <jennb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-03-28 21:49:14 +0000
committerjennb@chromium.org <jennb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-03-28 21:49:14 +0000
commitd4db6c702d284543ba49b63eee555bf864becb09 (patch)
tree99164f6d796fcce380f8ba83b7c74c2bf072b6d3 /views/window
parent15549947e651f2a4d9b1ec01019893ee5cc4bbbd (diff)
downloadchromium_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.h3
-rw-r--r--views/window/window.cc4
-rw-r--r--views/window/window.h3
-rw-r--r--views/window/window_gtk.cc2
-rw-r--r--views/window/window_win.cc14
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() {