| 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) {
|
| - 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);
|
| }
|
| }
|
|
|
|
|