pointer_system.type = SYSPTR_NULL;
pointer->PointerSystem(client->context, &pointer_system);
- tbm_surface = _e_rdp_tbm_image_create(output, output->w, output->h, 0xFFFFCCFF);
- if (tbm_surface == NULL)
- {
- ERR("create sample tbm surface failed");
- return TRUE;
- }
- pix_surface = _e_rdp_pixman_image_create(tbm_surface);
- if (pix_surface == NULL)
+ if (b->client_count == 1)
{
- ERR("create sample pixman failed");
- tbm_surface_destroy(tbm_surface);
- return TRUE;
- }
+ tbm_surface = _e_rdp_tbm_image_create(output, output->w, output->h, 0xFFFFCCFF);
+ if (tbm_surface == NULL)
+ {
+ ERR("create sample tbm surface failed");
+ return TRUE;
+ }
+ pix_surface = _e_rdp_pixman_image_create(tbm_surface);
+ if (pix_surface == NULL)
+ {
+ ERR("create sample pixman failed");
+ tbm_surface_destroy(tbm_surface);
+ return TRUE;
+ }
- /* sends a full refresh */
- box.x1 = 0;
- box.y1 = 0;
- box.x2 = output->w;
- box.y2 = output->h;
- pixman_region32_init_with_extents(&damage, &box);
+ /* sends a full refresh */
+ box.x1 = 0;
+ box.y1 = 0;
+ box.x2 = output->w;
+ box.y2 = output->h;
+ pixman_region32_init_with_extents(&damage, &box);
- output->prepare_tbm_surface = tbm_surface;
+ e_rdp_peer_refresh_region(&damage, client, pix_surface);
- e_rdp_peer_refresh_region(&damage, client, pix_surface);
+ pixman_region32_fini(&damage);
- pixman_region32_fini(&damage);
+ output->showing_surface = pix_surface;
+ output->showing_tbm_surface = tbm_surface;
- if (output->frame_timer != NULL)
- ecore_timer_del(output->frame_timer);
- output->refresh_time = _e_rdp_refresh_time_set(output->w, output->h);
- output->refresh_count = 5;
- output->frame_timer = ecore_timer_add(output->refresh_time, _e_rdp_frame_timer, output);
- output->buffer_changed = EINA_TRUE;
+ if (output->frame_timer != NULL)
+ ecore_timer_del(output->frame_timer);
+ output->refresh_time = _e_rdp_refresh_time_set(output->w, output->h);
+ output->refresh_count = 5;
+ output->frame_timer = ecore_timer_add(output->refresh_time, _e_rdp_frame_timer, output);
+ output->buffer_changed = EINA_TRUE;
+ }
+ else
+ {
+ output->refresh_count = 5;
+ output->buffer_changed = EINA_TRUE;
+ }
return TRUE;
}