diff options
author | tmdiep@chromium.org <tmdiep@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-10-11 11:27:22 +0000 |
---|---|---|
committer | tmdiep@chromium.org <tmdiep@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-10-11 11:27:22 +0000 |
commit | 46d46055fa8fb752bcab72ed1476e81924f5a74d (patch) | |
tree | ba758f30c65170ebc42f220b5f5810addcd03c26 /chrome/browser/extensions/api/app_window/app_window_api.cc | |
parent | 8321c5fa5df8d43f01937c2d7f00dafe1486b510 (diff) | |
download | chromium_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.cc | 6 |
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: |