e_pixmap: send pending frame callback when e_pixmap_buffer_clear 12/116812/2
authorJuyeon Lee <juyeonne.lee@samsung.com>
Tue, 28 Feb 2017 09:55:41 +0000 (18:55 +0900)
committerJuyeon Lee <juyeonne.lee@samsung.com>
Tue, 28 Feb 2017 10:08:05 +0000 (02:08 -0800)
Change-Id: I5c1170b5d6e94094e3a1e7dbac58f6fc33ca5307

src/bin/e_pixmap.c

index f3dcf03a70dff15dac095a43ca95b07658e71619..4068d7a93a86cfc17750d3d420ea38aa83eafef6 100644 (file)
@@ -998,6 +998,10 @@ e_pixmap_shutdown(void)
 E_API void
 e_pixmap_buffer_clear(E_Pixmap *cp)
 {
+   E_Comp_Wl_Client_Data *cdata;
+   struct wl_resource *cb;
+   Eina_List *l, *ll;
+
    EINA_SAFETY_ON_NULL_RETURN(cp);
 
    /* disabled this feature */
@@ -1039,4 +1043,14 @@ e_pixmap_buffer_clear(E_Pixmap *cp)
 
    /* composite object clear */
    e_comp_object_clear(cp->client->frame);
+
+   /* pending frame event callback*/
+   if ((!cp->client) || (!cp->client->comp_data)) return;
+   cdata = (E_Comp_Wl_Client_Data *)cp->client->comp_data;
+   EINA_LIST_FOREACH_SAFE(cdata->frames, l, ll, cb)
+     {
+        wl_callback_send_done(cb, ecore_time_unix_get() * 1000);
+        wl_resource_destroy(cb);
+     }
+
 }