DSWaylandZxdgToplevel: implement set_parent 03/242103/1
authorDoyoun Kang <doyoun.kang@samsung.com>
Sun, 23 Aug 2020 23:46:56 +0000 (08:46 +0900)
committerSung-Jin Park <sj76.park@samsung.com>
Mon, 24 Aug 2020 06:33:23 +0000 (15:33 +0900)
Change-Id: If4e310ceea19cae12bad463d09913d87b85a7086

src/DSWaylandServer/DSWaylandZxdgShellV6.cpp

index 1e38eae..f72a1e7 100644 (file)
@@ -544,9 +544,24 @@ void DSWaylandZxdgToplevelV6Private::zxdg_toplevel_v6_destroy_resource(zxdg_topl
 void DSWaylandZxdgToplevelV6Private::zxdg_toplevel_v6_destroy(zxdg_toplevel_v6::Resource *resource)
 {
 }
+
 void DSWaylandZxdgToplevelV6Private::zxdg_toplevel_v6_set_parent(zxdg_toplevel_v6::Resource *resource, struct ::wl_resource *parent)
 {
+       DSLOG_DBG("XDG_TopLevel", "Set Parent (parent:%p)", parent);
+
+       DSWaylandSurface *surface = __zxdgSurface->getSurface();
+       if (!surface) return;
+
+       DSWaylandSurface *parentSurface = DSWaylandSurface::fromWlResource(parent);
+
+       DSWindowManager *wm = DSWindowManager::getInstance();
+       if (wm)
+       {
+               wm->setWindowParent(surface, parentSurface);
+               DSWindowManager::releaseInstance();
+       }
 }
+
 void DSWaylandZxdgToplevelV6Private::zxdg_toplevel_v6_set_title(zxdg_toplevel_v6::Resource *resource, const std::string &title)
 {
        __zxdgSurface->setWindowTitle(title);