DSWindowManager: add API for setting parent window 01/242101/1
authorDoyoun Kang <doyoun.kang@samsung.com>
Sat, 22 Aug 2020 08:11:24 +0000 (17:11 +0900)
committerSung-Jin Park <sj76.park@samsung.com>
Mon, 24 Aug 2020 06:32:52 +0000 (15:32 +0900)
Change-Id: I87e6d1550ce89eede32ec2b2a421332126469e9d

src/DSWindowManager/DSWindowManager.cpp
src/DSWindowManager/DSWindowManager.h
src/DSWindowManager/DSWindowManagerPrivate.h

index ecb0420..3fc3e44 100644 (file)
@@ -201,6 +201,17 @@ DSZone *DSWindowManagerPrivate::getZone(DSWaylandSurface *surface)
        return __getZone(surface);
 }
 
+bool DSWindowManagerPrivate::setWindowParent(DSWaylandSurface *dswlSurface, DSWaylandSurface *dswlParentSurface)
+{
+       // find dsSurface's window
+       DSZone *zone = __getZone(dswlSurface);
+       if (!zone) return false;
+
+       DSZone *pZone = __getZone(dswlParentSurface);
+       if (zone != pZone) return false;
+
+       return zone->setWindowParent(dswlSurface, dswlParentSurface);
+}
 
 void DSWindowManagerPrivate::setWindowTitle(DSWaylandSurface *dsSurface, const std::string &title)
 {
@@ -421,6 +432,12 @@ DSZone *DSWindowManager::getZone(DSWaylandSurface *surface)
        return priv->getZone(surface);
 }
 
+bool DSWindowManager::setWindowParent(DSWaylandSurface *dswlSurface, DSWaylandSurface *dswlParentSurface)
+{
+       DS_GET_PRIV(DSWindowManager);
+       return priv->setWindowParent(dswlSurface, dswlParentSurface);
+}
+
 void DSWindowManager::setWindowTitle(DSWaylandSurface *dsSurface, const std::string &title)
 {
        DS_GET_PRIV(DSWindowManager);
index e7a135b..c11a495 100644 (file)
@@ -55,6 +55,7 @@ public:
        void unregisterSurface(DSZone *zone, DSWaylandSurface *surface);
        DSZone *getZone(DSWaylandSurface *surface);
 
+       bool setWindowParent(DSWaylandSurface *dswlSurface, DSWaylandSurface *dswlParentSurface);
        void setWindowTitle(DSWaylandSurface *dsSurface, const std::string &title);
        void setWindowType(DSWaylandSurface *dsSurface, int type);
        void setWindowGeometry(DSWaylandSurface *dsSurface, int x, int y, unsigned int w, unsigned h);
index be3610c..28f6ec2 100644 (file)
@@ -50,6 +50,7 @@ public:
        void unregisterSurface(DSZone *zone, DSWaylandSurface *surface);
        DSZone *getZone(DSWaylandSurface *surface);
 
+       bool setWindowParent(DSWaylandSurface *dswlSurface, DSWaylandSurface *dswlParentSurface);
        void setWindowTitle(DSWaylandSurface *dsSurface, const std::string &title);
        void setWindowType(DSWaylandSurface *dsSurface, int type);
        void setWindowGeometry(DSWaylandSurface *dsSurface, int x, int y, unsigned int w, unsigned h);