+static Eina_Bool
+_e_rdp_cb_client_uniconify(void *data, int type, void *event)
+{
+ E_Rdp_Backend *b = NULL;
+ E_Rdp_Output *output = NULL;
+ E_Event_Client *ev = event;
+ E_Client *ec = NULL;
+ E_Hwc *hwc = NULL;
+ E_Hwc_Window *hwc_window = NULL;
+ Eina_List *l;
+ Eina_Bool find = EINA_FALSE;
+
+ EINA_SAFETY_ON_NULL_RETURN_VAL(ev, ECORE_CALLBACK_PASS_ON);
+ EINA_SAFETY_ON_NULL_RETURN_VAL(ev->ec, ECORE_CALLBACK_PASS_ON);
+
+ ec = ev->ec;
+ EINA_SAFETY_ON_TRUE_RETURN_VAL(e_object_is_del(E_OBJECT(ec)), ECORE_CALLBACK_PASS_ON);
+ EINA_SAFETY_ON_NULL_RETURN_VAL(ec->pixmap, ECORE_CALLBACK_PASS_ON);
+
+ b = g_rdp_backend;
+ EINA_SAFETY_ON_NULL_RETURN_VAL(b, ECORE_CALLBACK_PASS_ON);
+ EINA_SAFETY_ON_NULL_RETURN_VAL(b->output, ECORE_CALLBACK_PASS_ON);
+ output = b->output;
+ if (b->client_count == 0)
+ return ECORE_CALLBACK_PASS_ON;
+
+ EINA_SAFETY_ON_NULL_RETURN_VAL(output, ECORE_CALLBACK_PASS_ON);
+ EINA_SAFETY_ON_NULL_RETURN_VAL(output->primary_output, ECORE_CALLBACK_PASS_ON);
+ EINA_SAFETY_ON_NULL_RETURN_VAL(output->primary_output->hwc, ECORE_CALLBACK_PASS_ON);
+
+ hwc = output->primary_output->hwc;
+
+ EINA_LIST_FOREACH(hwc->hwc_windows, l, hwc_window)
+ {
+ if (!hwc_window) continue;
+ if (hwc_window->is_target) continue;
+ if (hwc_window->is_video) continue;
+
+ if (hwc_window == ec->hwc_window)
+ {
+ find = EINA_TRUE;
+ break;
+ }
+ }
+
+ if (find == EINA_FALSE)
+ return ECORE_CALLBACK_PASS_ON;
+
+ 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;
+
+ return ECORE_CALLBACK_PASS_ON;
+}
+