Add evas render post callback 40/274140/1
authorJunkyeong, Kim <jk0430.kim@samsung.com>
Fri, 22 Apr 2022 04:04:32 +0000 (13:04 +0900)
committerJunkyeong, Kim <jk0430.kim@samsung.com>
Fri, 22 Apr 2022 04:04:36 +0000 (13:04 +0900)
To detect quickpanel changing, add evas render post callback function.

Change-Id: I983f7acafb74be2afe4295b0a23248d84064b36d
Signed-off-by: Junkyeong, Kim <jk0430.kim@samsung.com>
src/e_mod_rdp.c

index 78916cd..0663efb 100644 (file)
@@ -1480,6 +1480,26 @@ _e_rdp_cb_pointer_mouse_move(void *data, E_Pointer *ptr)
    output->mouse_moved = EINA_TRUE;
 }
 
+static void
+_e_rdp_canvas_render_post(void *data EINA_UNUSED, Evas *e EINA_UNUSED, void *event_info EINA_UNUSED)
+{
+   E_Rdp_Backend *b = NULL;
+   E_Rdp_Output *output = NULL;
+
+   b = g_rdp_backend;
+   EINA_SAFETY_ON_NULL_RETURN(b);
+   EINA_SAFETY_ON_NULL_RETURN(b->output);
+   output = b->output;
+
+   if (b->client_count == 0)
+     return;
+
+   if (!output->frame_timer)
+     output->frame_timer = ecore_timer_add(output->refresh_time, _e_rdp_frame_timer, output);
+   output->refresh_count = 5;
+   output->buffer_changed = EINA_TRUE;
+}
+
 static double
 _e_rdp_refresh_time_set(uint32_t w, uint32_t h)
 {
@@ -2170,6 +2190,8 @@ e_rdp_backend_destroy(void)
    b = g_rdp_backend;
    EINA_SAFETY_ON_NULL_RETURN(b);
 
+   evas_event_callback_del(e_comp->evas, EVAS_CALLBACK_RENDER_POST, _e_rdp_canvas_render_post);
+
    if (pointer_hook)
      {
         e_pointer_hook_del(pointer_hook);
@@ -2268,6 +2290,7 @@ e_rdp_backend_create(E_Rdp_Conf_Edd *config)
    E_LIST_HANDLER_APPEND(b->handlers, E_EVENT_CLIENT_BUFFER_CHANGE, _e_rdp_cb_client_buffer_change, g_rdp_backend);
    E_LIST_HANDLER_APPEND(b->handlers, E_EVENT_CLIENT_UNICONIFY, _e_rdp_cb_client_uniconify, g_rdp_backend);
    pointer_hook = e_pointer_hook_add(E_POINTER_HOOK_MOUSE_MOVE, _e_rdp_cb_pointer_mouse_move, g_rdp_backend);
+   evas_event_callback_add(e_comp->evas, EVAS_CALLBACK_RENDER_POST, _e_rdp_canvas_render_post, NULL);
 
    g_rdp_backend = b;