ecore_wl2_window: check if callback exists before adding it. 69/202869/1
authorHosang Kim <hosang12.kim@samsung.com>
Fri, 5 Apr 2019 08:43:59 +0000 (17:43 +0900)
committerHosang Kim <hosang12.kim@samsung.com>
Fri, 5 Apr 2019 08:43:59 +0000 (17:43 +0900)
Change-Id: I86f41a3a04c0fdde1a73e4469264530e63ee02f0

src/lib/ecore_wl2/ecore_wl2_window.c

index e74fb06..99882c6 100644 (file)
@@ -3043,8 +3043,11 @@ ecore_wl2_window_commit(Ecore_Wl2_Window *window, Eina_Bool flush)
      {
         if (window->has_buffer)
           window->commit_pending = EINA_TRUE;
-        window->callback = wl_surface_frame(window->surface);
-        wl_callback_add_listener(window->callback, &_frame_listener, window);
+        if (!window->callback)
+          {
+             window->callback = wl_surface_frame(window->surface);
+             wl_callback_add_listener(window->callback, &_frame_listener, window);
+          }
         /* Dispatch any state we've been saving along the way */
         if (window->pending.geom)
           {
@@ -3105,8 +3108,11 @@ ecore_wl2_window_false_commit(Ecore_Wl2_Window *window)
    EINA_SAFETY_ON_TRUE_RETURN(window->pending.configure);
    EINA_SAFETY_ON_TRUE_RETURN(window->commit_pending);
 
-   window->callback = wl_surface_frame(window->surface);
-   wl_callback_add_listener(window->callback, &_frame_listener, window);
+   if (!window->callback)
+     {
+        window->callback = wl_surface_frame(window->surface);
+        wl_callback_add_listener(window->callback, &_frame_listener, window);
+     }
    wl_surface_commit(window->surface);
    ecore_wl2_display_flush(window->display);
    if (window->has_buffer)