if (impl_->freeze_)
return;
+ if (impl_->surface_.get() == nullptr) {
+ LOGW("Surface is not ready. Queuing visibility");
+ impl_->queuing_visibility_ = std::unique_ptr<bool>(new bool(visible));
+ return;
+ }
+
if (RemoteSurface::Impl::delayed_resuming_time_ == 0 ||
GetType() == WATCH) {
if (!visible)
if (bind_surface_.get() != nullptr)
RemoteSurfaceManager::GetInst().Bind(*surface_, *bind_surface_);
+
+ if (queuing_visibility_ != nullptr) {
+ parent_->SendVisibility(*queuing_visibility_);
+ queuing_visibility_ = nullptr;
+ }
}
void RemoteSurface::Bind(std::shared_ptr<WlSurface> surface) {