summaryrefslogtreecommitdiffstats
path: root/chrome/browser/extensions/api/app_window/app_window_api.cc
diff options
context:
space:
mode:
authortmdiep@chromium.org <tmdiep@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-10-11 11:27:22 +0000
committertmdiep@chromium.org <tmdiep@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-10-11 11:27:22 +0000
commit46d46055fa8fb752bcab72ed1476e81924f5a74d (patch)
treeba758f30c65170ebc42f220b5f5810addcd03c26 /chrome/browser/extensions/api/app_window/app_window_api.cc
parent8321c5fa5df8d43f01937c2d7f00dafe1486b510 (diff)
downloadchromium_src-46d46055fa8fb752bcab72ed1476e81924f5a74d.zip
chromium_src-46d46055fa8fb752bcab72ed1476e81924f5a74d.tar.gz
chromium_src-46d46055fa8fb752bcab72ed1476e81924f5a74d.tar.bz2
Add always-on-top property to app windows
The chrome.app.window API has been extended to include: - A new alwaysOnTop option for the create() function. - An AppWindow.isAlwaysOnTop() function to query the state of this property. - An AppWindow.setAlwaysOnTop() function to change this property after creation of the window. Changes involving native app windows: - Added apps::NativeAppWindow::SetAlwaysOnTop(). - Implemented IsAlwaysOnTop(), a function inherited from ui::BaseWindow but was left unimplemented for native app windows. Changes involving views: - Added IsAlwaysOnTop(). SetAlwaysOnTop() already existed. BUG=171597 TEST=browser_tests (PlatformAppBrowserTest.WindowsApiAlwaysOnTop). Test manually by creating an app that enables the alwaysOnTop option on window creation and changes the property after creation. Test Windows, Mac, ChromeOS and Linux. Review URL: https://codereview.chromium.org/26427002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@228160 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/extensions/api/app_window/app_window_api.cc')
-rw-r--r--chrome/browser/extensions/api/app_window/app_window_api.cc6
1 files changed, 6 insertions, 0 deletions
diff --git a/chrome/browser/extensions/api/app_window/app_window_api.cc b/chrome/browser/extensions/api/app_window/app_window_api.cc
index b3bbeb9..34ab489 100644
--- a/chrome/browser/extensions/api/app_window/app_window_api.cc
+++ b/chrome/browser/extensions/api/app_window/app_window_api.cc
@@ -93,6 +93,7 @@ void SetCreateResultFromShellWindow(ShellWindow* window,
result->SetBoolean("fullscreen", window->GetBaseWindow()->IsFullscreen());
result->SetBoolean("minimized", window->GetBaseWindow()->IsMinimized());
result->SetBoolean("maximized", window->GetBaseWindow()->IsMaximized());
+ result->SetBoolean("alwaysOnTop", window->GetBaseWindow()->IsAlwaysOnTop());
base::DictionaryValue* boundsValue = new base::DictionaryValue();
gfx::Rect bounds = window->GetClientBounds();
boundsValue->SetInteger("left", bounds.x());
@@ -246,6 +247,11 @@ bool AppWindowCreateFunction::RunImpl() {
if (options->resizable.get())
create_params.resizable = *options->resizable.get();
+ if (GetCurrentChannel() <= chrome::VersionInfo::CHANNEL_DEV &&
+ options->always_on_top.get()) {
+ create_params.always_on_top = *options->always_on_top.get();
+ }
+
if (options->type != extensions::api::app_window::WINDOW_TYPE_PANEL) {
switch (options->state) {
case extensions::api::app_window::STATE_NONE: