From: dyamy-lee Date: Thu, 20 Jan 2022 01:52:15 +0000 (+0900) Subject: e_mod_rdp : implement rdp mouse event using e_info_server api X-Git-Tag: submit/tizen/20220128.060848~6 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=a54f53e1c23c3322b8d59fc90ee714a0ac576c87;p=platform%2Fcore%2Fuifw%2Fe-mod-tizen-rdp.git e_mod_rdp : implement rdp mouse event using e_info_server api Change-Id: I2eea4db018f99ae0fa31fd1c40c4af6b5b98cfe6 --- diff --git a/src/e_mod_rdp.c b/src/e_mod_rdp.c index 0e52d29..e7d2892 100644 --- a/src/e_mod_rdp.c +++ b/src/e_mod_rdp.c @@ -1010,13 +1010,63 @@ static BOOL e_rdp_input_synchronize_event(rdpInput *input, UINT32 flags) { //To do + DBG("e_rdp_input_synchronize_event\n"); return TRUE; } static BOOL e_rdp_mouse_event(rdpInput *input, UINT16 flags, UINT16 x, UINT16 y) { - //To do + static int prev_w, prev_h; + int e_output_w, e_output_h; + int move_x = 0, move_y = 0; + uint32_t button = 0; + uint32_t state = 0; + + E_Rdp_Peer_Context *peerContext = (E_Rdp_Peer_Context *)input->context; + E_Rdp_Output *output = peerContext->rdpBackend->output; + E_Output *e_output = output->primary_output; + e_output_w = e_output->config.mode.w; + e_output_h = e_output->config.mode.h; + + if (flags & PTR_FLAGS_MOVE) + { + 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; + } + } + + if (flags & PTR_FLAGS_BUTTON1) + button = BTN_LEFT; + else if (flags & PTR_FLAGS_BUTTON2) + button = BTN_RIGHT; + else if (flags & PTR_FLAGS_BUTTON3) + button = BTN_MIDDLE; + + if (button) + state = (flags & PTR_FLAGS_DOWN) ? E_INFO_EVENT_STATE_PRESS : E_INFO_EVENT_STATE_RELEASE; + + if (flags & PTR_FLAGS_WHEEL) + { + double value; + value = (flags & 0xff) / 120.0; + + button = E_INFO_BUTTON_WHEEL; + state = E_INFO_EVENT_STATE_MOTION; + + if (flags & PTR_FLAGS_WHEEL_NEGATIVE) + value = -value; + + move_x = (int)value; + } + + e_info_server_input_mousegen(button, move_x, move_y, state); + return TRUE; } @@ -1024,6 +1074,7 @@ static BOOL e_rdp_extended_mouse_event(rdpInput *input, UINT16 flags, UINT16 x, UINT16 y) { //To do + DBG("e_rdp_extended_mouse_event\n"); return TRUE; }