DSWindow: fix bug not to re-show window 46/242346/1
authorDoyoun Kang <doyoun.kang@samsung.com>
Tue, 25 Aug 2020 11:12:02 +0000 (20:12 +0900)
committerSung-Jin Park <sj76.park@samsung.com>
Tue, 25 Aug 2020 12:41:27 +0000 (21:41 +0900)
Change-Id: I9e8b7a7fd15c67ff37ba31f33c6e9da6afd36e7f

src/DSWindow/DSWindow.cpp
src/DSWindow/DSWindowPrivate.h

index abf824d..644fa59 100644 (file)
@@ -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_ptr<DSWaylandSurfaceCommi
 
        if (waylandSurfaceCommitInfo->bufferChanged()) {
                std::shared_ptr<IDSBuffer> buffer = waylandSurfaceCommitInfo->getBuffer();
+               if (buffer)
+               {
+                       std::shared_ptr<stSize> 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);
index 2e6e642..3109df7 100644 (file)
@@ -89,6 +89,7 @@ private:
        unsigned int __zOrder;
        unsigned int __committedW, __committedH;
        bool __created;
+       bool __visible;
        bool __hasFocus;
        std::shared_ptr<DSWaylandSurface> __waylandSurface;
        DSWindowShell *__winShell;