| Index: components/exo/shell_surface.cc
|
| diff --git a/components/exo/shell_surface.cc b/components/exo/shell_surface.cc
|
| index 7c034052e72dd8a5f67298093964bd4a31dbf8d6..0ccf43e4ffdb1ea274edbd57d56c155837d19c8c 100644
|
| --- a/components/exo/shell_surface.cc
|
| +++ b/components/exo/shell_surface.cc
|
| @@ -493,14 +493,18 @@ void ShellSurface::SetPinned(bool pinned, bool trusted) {
|
| // state doesn't change.
|
| ScopedConfigure scoped_configure(this, true);
|
| if (pinned) {
|
| - ash::wm::PinWindow(widget_->GetNativeWindow(), trusted);
|
| + aura::client::WindowPinType pin_type =
|
| + trusted ? aura::client::WindowPinType::TRUSTED_PINNED
|
| + : aura::client::WindowPinType::PINNED;
|
| + widget_->GetNativeWindow()->SetProperty(aura::client::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(aura::client::kWindowPinTypeKey,
|
| + aura::client::WindowPinType::NONE);
|
| }
|
| }
|
|
|
|
|