From a6e9cfa6d9525f6ff1ef699e8a563162fdbe5416 Mon Sep 17 00:00:00 2001 From: ichaoX <11764590+ichaoX@users.noreply.github.com> Date: Sun, 10 Sep 2023 21:09:54 +0800 Subject: [PATCH] [channels,rdpei] fix pen contact --- channels/rdpei/client/rdpei_main.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/channels/rdpei/client/rdpei_main.c b/channels/rdpei/client/rdpei_main.c index 268ca4e53..dff6d6476 100644 --- a/channels/rdpei/client/rdpei_main.c +++ b/channels/rdpei/client/rdpei_main.c @@ -1195,17 +1195,13 @@ static UINT rdpei_pen_process(RdpeiClientContext* context, INT32 externalId, UIN rdpei = (RDPEI_PLUGIN*)context->handle; - const BOOL active = (contactFlags & RDPINPUT_CONTACT_FLAG_DOWN) == 0; EnterCriticalSection(&rdpei->lock); - /* If a normal down event is given, we start a new contact. - * If that fails, check if we have a new hover event */ - contactPoint = rdpei_pen_contact(rdpei, externalId, active); + // Start a new contact only when it is not active. + contactPoint = rdpei_pen_contact(rdpei, externalId, TRUE); if (!contactPoint) { - const UINT32 mask = RDPINPUT_CONTACT_FLAG_INRANGE | RDPINPUT_CONTACT_FLAG_UPDATE; - const UINT32 negmask = - RDPINPUT_CONTACT_FLAG_DOWN | RDPINPUT_CONTACT_FLAG_INCONTACT | RDPINPUT_CONTACT_FLAG_UP; - if (((contactFlags & mask) == mask) && ((contactFlags & negmask) == 0)) + const UINT32 mask = RDPINPUT_CONTACT_FLAG_INRANGE; + if ((contactFlags & mask) == mask) { contactPoint = rdpei_pen_contact(rdpei, externalId, FALSE); }