Skip to content

Commit

Permalink
Merge pull request #2994 from metalefty/v0.9-vnc-scroll
Browse files Browse the repository at this point in the history
[v0.9] Disable touch events on Xvnc Session
  • Loading branch information
metalefty committed Mar 13, 2024
2 parents 18cb6ef + 82bf205 commit b913f0d
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 7 deletions.
1 change: 0 additions & 1 deletion xrdp/xrdp_mm.c
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,6 @@ xrdp_mm_chansrv_connect(struct xrdp_mm *self, const char *ip, const char *port);
static void
xrdp_mm_connect_sm(struct xrdp_mm *self);


/*****************************************************************************/
struct xrdp_mm *
xrdp_mm_create(struct xrdp_wm *owner)
Expand Down
7 changes: 7 additions & 0 deletions xrdp/xrdp_types.h
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,13 @@
#define MAX_NR_CHANNELS 16
#define MAX_CHANNEL_NAME 16

/* Code values used in 'xrdp_mm->code=' settings */
#define XVNC_SESSION_CODE 0
#define XORG_SESSION_CODE 20

/* To check whether touch events has been implemented on session type 'mm' */
#define XRDP_MM_IMPLEMENTS_TOUCH(mm) ((mm)->code != XVNC_SESSION_CODE)

struct source_info;

/* lib */
Expand Down
10 changes: 4 additions & 6 deletions xrdp/xrdp_wm.c
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,6 @@
#include "log.h"
#include "string_calls.h"



/*****************************************************************************/
struct xrdp_wm *
xrdp_wm_create(struct xrdp_process *owner,
Expand Down Expand Up @@ -1806,7 +1804,7 @@ xrdp_wm_process_input_mouse(struct xrdp_wm *self, int device_flags,
* The negative number is represented by complement.
*/
delta = (device_flags & WheelRotationMask) | ~WheelRotationMask;
if (delta != 0)
if (delta != 0 && XRDP_MM_IMPLEMENTS_TOUCH(self->mm))
{
// Use nature scrolling, up direction is negative.
xrdp_wm_mouse_touch(self, TOUCH_TWO_FINGERS_UP, delta);
Expand All @@ -1819,7 +1817,7 @@ xrdp_wm_process_input_mouse(struct xrdp_wm *self, int device_flags,
else
{
delta = device_flags & WheelRotationMask;
if (delta != 0)
if (delta != 0 && XRDP_MM_IMPLEMENTS_TOUCH(self->mm))
{
xrdp_wm_mouse_touch(self, TOUCH_TWO_FINGERS_DOWN, delta);
}
Expand Down Expand Up @@ -1852,7 +1850,7 @@ xrdp_wm_process_input_mouse(struct xrdp_wm *self, int device_flags,
* The negative number is represented by complement.
*/
delta = (device_flags & WheelRotationMask) | ~WheelRotationMask;
if (delta != 0)
if (delta != 0 && XRDP_MM_IMPLEMENTS_TOUCH(self->mm))
{
// Use nature scrolling, right direction is negative.
xrdp_wm_mouse_touch(self, TOUCH_TWO_FINGERS_RIGHT, delta);
Expand All @@ -1865,7 +1863,7 @@ xrdp_wm_process_input_mouse(struct xrdp_wm *self, int device_flags,
else
{
delta = device_flags & WheelRotationMask;
if (delta != 0)
if (delta != 0 && XRDP_MM_IMPLEMENTS_TOUCH(self->mm))
{
xrdp_wm_mouse_touch(self, TOUCH_TWO_FINGERS_LEFT, delta);
}
Expand Down

0 comments on commit b913f0d

Please sign in to comment.