diff options
Diffstat (limited to 'chrome/browser/ui/views/apps/native_app_window_views.cc')
-rw-r--r-- | chrome/browser/ui/views/apps/native_app_window_views.cc | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/chrome/browser/ui/views/apps/native_app_window_views.cc b/chrome/browser/ui/views/apps/native_app_window_views.cc index 5c18710..e321c775 100644 --- a/chrome/browser/ui/views/apps/native_app_window_views.cc +++ b/chrome/browser/ui/views/apps/native_app_window_views.cc @@ -169,6 +169,7 @@ void NativeAppWindowViews::InitializeDefaultWindow( // TODO(erg): Conceptually, these are toplevel windows, but we theoretically // could plumb context through to here in some cases. init_params.top_level = true; + init_params.keep_on_top = create_params.always_on_top; gfx::Rect window_bounds = create_params.bounds; bool position_specified = window_bounds.x() != INT_MIN && window_bounds.y() != INT_MIN; @@ -410,14 +411,16 @@ void NativeAppWindowViews::FlashFrame(bool flash) { } bool NativeAppWindowViews::IsAlwaysOnTop() const { - if (!shell_window_->window_type_is_panel()) - return false; + if (shell_window_->window_type_is_panel()) { #if defined(USE_ASH) return ash::wm::GetWindowState(window_->GetNativeWindow())-> panel_attached(); #else return true; #endif + } else { + return window_->IsAlwaysOnTop(); + } } gfx::Insets NativeAppWindowViews::GetFrameInsets() const { @@ -443,6 +446,11 @@ bool NativeAppWindowViews::IsVisible() const { void NativeAppWindowViews::HideWithApp() {} void NativeAppWindowViews::ShowWithApp() {} +void NativeAppWindowViews::SetAlwaysOnTop(bool always_on_top) { + window_->SetAlwaysOnTop(always_on_top); + shell_window_->OnNativeWindowChanged(); +} + gfx::NativeView NativeAppWindowViews::GetHostView() const { return window_->GetNativeView(); } |