From f72a0923c3160e606bc8f5f049371cb7397237d3 Mon Sep 17 00:00:00 2001 From: Doyoun Kang Date: Tue, 25 Aug 2020 20:12:02 +0900 Subject: [PATCH] DSWindow: fix bug not to re-show window Change-Id: I9e8b7a7fd15c67ff37ba31f33c6e9da6afd36e7f --- src/DSWindow/DSWindow.cpp | 15 +++++++++++++++ src/DSWindow/DSWindowPrivate.h | 1 + 2 files changed, 16 insertions(+) diff --git a/src/DSWindow/DSWindow.cpp b/src/DSWindow/DSWindow.cpp index abf824d..644fa59 100644 --- a/src/DSWindow/DSWindow.cpp +++ b/src/DSWindow/DSWindow.cpp @@ -41,6 +41,7 @@ DSWindowPrivate::DSWindowPrivate(DSWindow *p_ptr) __committedW(0), __committedH(0), __created(false), + __visible(false), __hasFocus(false), __waylandSurface(nullptr), __winShell(nullptr), @@ -219,6 +220,20 @@ void DSWindowPrivate::__onSurfaceCommitted(std::shared_ptrbufferChanged()) { std::shared_ptr buffer = waylandSurfaceCommitInfo->getBuffer(); + if (buffer) + { + std::shared_ptr bufferSize = buffer->getSize(); + __committedW = bufferSize->w; + __committedH = bufferSize->h; + + if (!__visible) + __visible = true; + } + else + { + __visible = false; + __firstCommit = true; + } // emit a signal of the buffer changed pub->__bufferChangedSignal.emit(buffer); diff --git a/src/DSWindow/DSWindowPrivate.h b/src/DSWindow/DSWindowPrivate.h index 2e6e642..3109df7 100644 --- a/src/DSWindow/DSWindowPrivate.h +++ b/src/DSWindow/DSWindowPrivate.h @@ -89,6 +89,7 @@ private: unsigned int __zOrder; unsigned int __committedW, __committedH; bool __created; + bool __visible; bool __hasFocus; std::shared_ptr __waylandSurface; DSWindowShell *__winShell; -- 2.7.4