Chromium Code Reviews| Index: components/exo/shell_surface.cc |
| diff --git a/components/exo/shell_surface.cc b/components/exo/shell_surface.cc |
| index c1fa2e241f7a6addcfb00bf66067b71935064209..93e57d54f0268a5dc4e3502d992c7e875754ca6d 100644 |
| --- a/components/exo/shell_surface.cc |
| +++ b/components/exo/shell_surface.cc |
| @@ -13,6 +13,7 @@ |
| #include "ash/common/wm_shell.h" |
| #include "ash/common/wm_window.h" |
| #include "ash/public/cpp/shell_window_ids.h" |
| +#include "ash/public/cpp/window_properties.h" |
| #include "ash/wm/drag_window_resizer.h" |
| #include "ash/wm/window_state_aura.h" |
| #include "ash/wm/window_util.h" |
| @@ -493,14 +494,16 @@ void ShellSurface::SetPinned(bool pinned, bool trusted) { |
| // state doesn't change. |
| ScopedConfigure scoped_configure(this, true); |
| if (pinned) { |
|
sky
2017/04/03 16:38:56
Maybe move the determining of type to a function s
Peng
2017/04/03 18:03:48
Done.
|
| - ash::wm::PinWindow(widget_->GetNativeWindow(), trusted); |
| + ash::WindowPinType pin_type = trusted ? ash::WindowPinType::TRUSTED_PINNED |
| + : ash::WindowPinType::PINNED; |
| + widget_->GetNativeWindow()->SetProperty(ash::kWindowPinTypeKey, pin_type); |
| } else { |
| // At the moment, we cannot just unpin the window state, due to ash |
| // implementation. Instead, we call Restore() to unpin, if it is Pinned |
| // state. In this implementation, we may loose the previous state, |
| // if the previous state is fullscreen, etc. |
| - if (ash::wm::GetWindowState(widget_->GetNativeWindow())->IsPinned()) |
| - widget_->Restore(); |
| + widget_->GetNativeWindow()->SetProperty(ash::kWindowPinTypeKey, |
| + ash::WindowPinType::NONE); |
| } |
| } |