DSWaylandTizenSurface: get resource id from DSWaylandSurface's __tizenResourceId 94/242794/1
authorJunkyeong Kim <jk0430.kim@samsung.com>
Fri, 28 Aug 2020 08:45:34 +0000 (17:45 +0900)
committerSung-Jin Park <sj76.park@samsung.com>
Tue, 1 Sep 2020 01:29:57 +0000 (10:29 +0900)
Change-Id: I97c6abf78454edf48ee2e0f69e7e0e8ce7fb94b5
Signed-off-by: Junkyeong Kim <jk0430.kim@samsung.com>
src/DSWaylandServer/DSWaylandTizenSurface.cpp
src/DSWaylandServer/DSWaylandTizenSurfacePrivate.h

index 0a693cb..a698b2a 100644 (file)
@@ -30,8 +30,7 @@ namespace display_server
 /* DSWaylandTizenSurface */
 DSWaylandTizenSurfacePrivate::DSWaylandTizenSurfacePrivate(DSWaylandTizenSurface *p_ptr, DSWaylandCompositor *compositor)
        : DSObjectPrivate(p_ptr),
-         __p_ptr(p_ptr),
-         __resource_id_cnt(0)
+         __p_ptr(p_ptr)
 {
        if (!compositor)
                return;
@@ -54,6 +53,8 @@ void DSWaylandTizenSurfacePrivate::tizen_surface_destroy_resource(Resource *reso
 void DSWaylandTizenSurfacePrivate::tizen_surface_get_tizen_resource(Resource *resource, uint32_t id, struct ::wl_resource *surface)
 {
        DSWaylandTizenResource *tizenResource = nullptr;
+       DSWaylandSurface *waylandSurface = nullptr;
+       uint32_t tizenResourceId = 0;
 
        for (DSWaylandTizenResource *temp : __resourceList)
                if (temp->getResourceSurface() == surface) return;
@@ -65,8 +66,27 @@ void DSWaylandTizenSurfacePrivate::tizen_surface_get_tizen_resource(Resource *re
                return;
        }
 
-       __resource_id_cnt++;
-       tizenResource->setResourceId(__resource_id_cnt);
+       for (DSWaylandSurface *temp : __waylandSurfaceList)
+       {
+               if (temp->hasResource())
+               {
+                       if (temp->getWlResource() == surface)
+                       {
+                               waylandSurface = temp;
+                               break;
+                       }
+               }
+       }
+
+       if (waylandSurface)
+       {
+               tizenResourceId = waylandSurface->getTizenResourceId();
+               tizenResource->setResourceId(tizenResourceId);
+       }
+       else
+       {
+               DSLOG_ERR("DSWaylandTizenSurface", "fail get tizen resource id");
+       }
 
        __resourceList.push_back(tizenResource);
 
index 27ea899..e2e634d 100644 (file)
@@ -26,6 +26,7 @@
 
 #include "dswayland-server-tizen-extension.h"
 #include "DSWaylandTizenSurface.h"
+#include "DSWaylandSurface.h"
 
 namespace display_server
 {
@@ -73,7 +74,6 @@ protected:
 
 private:
        std::list<DSWaylandTizenResource *> __resourceList;
-       uint32_t __resource_id_cnt; //TO DO : have to manage more proper class
 };
 
 }