ecore-wl2: Add API function to free a window
authorChris Michael <cp.michael@samsung.com>
Wed, 9 Sep 2015 16:12:53 +0000 (12:12 -0400)
committerChris Michael <cp.michael@samsung.com>
Thu, 3 Dec 2015 17:02:40 +0000 (12:02 -0500)
Signed-off-by: Chris Michael <cp.michael@samsung.com>
src/lib/ecore_wl2/Ecore_Wl2.h
src/lib/ecore_wl2/ecore_wl2_window.c

index cf24f37..e059e17 100644 (file)
@@ -274,6 +274,15 @@ EAPI void ecore_wl2_window_show(Ecore_Wl2_Window *window);
  */
 EAPI void ecore_wl2_window_hide(Ecore_Wl2_Window *window);
 
+/**
+ * Free a given Ecore_Wl2_Window
+ *
+ * @param window The Ecore_Wl2_Window to free
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ */
+EAPI void ecore_wl2_window_free(Ecore_Wl2_Window *window);
+
 /* # ifdef __cplusplus */
 /* } */
 /* # endif */
index eb2ee8d..7f354f0 100644 (file)
@@ -282,3 +282,20 @@ ecore_wl2_window_hide(Ecore_Wl2_Window *window)
    if (window->surface) wl_surface_destroy(window->surface);
    window->surface = NULL;
 }
+
+EAPI void
+ecore_wl2_window_free(Ecore_Wl2_Window *window)
+{
+   EINA_SAFETY_ON_NULL_RETURN(window);
+
+   /* TODO: reset input pointer and keyboard focus */
+   /* TODO: delete window anim callback */
+   /* TODO: destroy subsurfaces */
+
+   ecore_wl2_window_hide(window);
+
+   if (window->title) eina_stringshare_del(window->title);
+   if (window->class) eina_stringshare_del(window->class);
+
+   free(window);
+}