uint32_t w;
uint32_t h;
+ uint32_t primary_w;
+ uint32_t primary_h;
+
+ float mouse_scale_w;
+ float mouse_scale_h;
+
+ uint32_t prev_x;
+ uint32_t prev_y;
+
struct wl_list peers;
};
}
}
+ output->mouse_scale_w = (float)output->primary_w / output->w;
+ output->mouse_scale_h = (float)output->primary_h / output->h;
+
rfx_context_reset(peerCtx->rfx_context, output->w, output->h);
nsc_context_reset(peerCtx->nsc_context, output->w, output->h);
if (peersItem->flags & RDP_PEER_ACTIVATED)
static BOOL
e_rdp_mouse_event(rdpInput *input, UINT16 flags, UINT16 x, UINT16 y)
{
- static int prev_w, prev_h;
int e_output_w, e_output_h;
int move_x = 0, move_y = 0;
uint32_t button = 0;
if (x < e_output_w && y < e_output_h)
{
state = E_INFO_EVENT_STATE_MOTION;
- move_x = (int)(x - prev_w);
- move_y = (int)(y - prev_h);
- prev_w = x;
- prev_h = y;
+ move_x = (int)((int)(x - output->prev_x) * output->mouse_scale_w);
+ move_y = (int)((int)(y - output->prev_y) * output->mouse_scale_h);
+ output->prev_x = x;
+ output->prev_y = y;
}
}
{
if (emode->current)
{
+ output->primary_w = emode->w;
+ output->primary_h = emode->h;
output->w = emode->w / 2;
output->h = emode->h / 2;
mode = EINA_TRUE;
output->h = E_RDP_HEIGHT;
}
+ output->prev_x = output->prev_y = 0;
+
wl_list_init(&output->peers);
return output;