From 318eba1c4ba369f0b7500a54593baa19c9ec038f Mon Sep 17 00:00:00 2001
From: Koichiro Iwao
Date: Mon, 11 Mar 2024 21:08:05 +0900
Subject: [PATCH 1/6] Update NEWS for v0.9.25
---
NEWS.md | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)
diff --git a/NEWS.md b/NEWS.md
index 99a5b3c452..ae1adb8a9d 100644
--- a/NEWS.md
+++ b/NEWS.md
@@ -1,3 +1,31 @@
+# Release notes for xrdp v0.9.25 (2024/03/11)
+* Running xrdp and xrdp-sesman on separate hosts is still supported by this release, but is now deprecated. This is not secure. A future v1.0 release will replace the TCP socket used between these processes with a Unix Domain Socket, and then cross-host running will not be possible.
+
+## General announcements
+
+_This is the last v0.9.x version which is released regularly. v0.9.x will be maintained for a while but less actively. New releases will happen only when severe security vulnerabilities or critical bugs are found._
+
+We have created a fund on [Open Collective](https://opencollective.com/xrdp-project). Support us if you like xrdp! Direct donations to each developer via GitHub Sponsors are also welcomed.
+
+## Security fixes
+No new security fixes in this release.
+
+## Bug fixes
+* Backport touchpad inertial scrolling (#2364 #2424 #2948).
+
+## New features
+* If the client announces support for the Image RemoteFX codec it is logged (back-port of #2946)
+
+## Internal changes
+* FreeBSD CI version bumped to 13.2 from 12.4 (#2897)
+* Some test timeouts have been increased for slow CI machines (#2903)
+
+## Known issues
+* On-the-fly resolution change requires the Microsoft Store version of Remote Desktop client but sometimes crashes on connect (#1869)
+* xrdp's login dialog is not relocated at the center of the new resolution after on-the-fly resolution change happens (#1867)
+
+-----------------------
+
# Release notes for xrdp v0.9.24 (2023/12/30)
* Running xrdp and xrdp-sesman on separate hosts is still supported by this release, but is now deprecated. This is not secure. A future v1.0 release will replace the TCP socket used between these processes with a Unix Domain Socket, and then cross-host running will not be possible.
From a74747f16237075ccb41fa071525d05bd297013b Mon Sep 17 00:00:00 2001
From: Koichiro Iwao
Date: Mon, 11 Mar 2024 21:08:13 +0900
Subject: [PATCH 2/6] Bump version to v0.9.25
---
configure.ac | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
index e2e4d63da1..0991203f37 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,7 +1,7 @@
# Process this file with autoconf to produce a configure script
AC_PREREQ(2.65)
-AC_INIT([xrdp], [0.9.24], [xrdp-devel@googlegroups.com])
+AC_INIT([xrdp], [0.9.25], [xrdp-devel@googlegroups.com])
AC_CONFIG_HEADERS(config_ac.h:config_ac-h.in)
AM_INIT_AUTOMAKE([1.7.2 foreign])
AC_CONFIG_MACRO_DIR([m4])
From 14c21566dc83368a2860ecb007896cd4eb546d31 Mon Sep 17 00:00:00 2001
From: sefler
Date: Mon, 14 Nov 2022 20:13:50 +0800
Subject: [PATCH 3/6] Disabel touch events on XVNC session
Fixes: #2993
(cherry picked from commit e97a66593bf6f7ef8d8ae567ab53586b6bb54b35)
---
xrdp/xrdp_mm.c | 1 -
xrdp/xrdp_types.h | 8 ++++++++
xrdp/xrdp_wm.c | 10 ++++------
3 files changed, 12 insertions(+), 7 deletions(-)
diff --git a/xrdp/xrdp_mm.c b/xrdp/xrdp_mm.c
index c27c2341b3..df78dbb07a 100644
--- a/xrdp/xrdp_mm.c
+++ b/xrdp/xrdp_mm.c
@@ -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)
diff --git a/xrdp/xrdp_types.h b/xrdp/xrdp_types.h
index b794890b08..4acaa23635 100644
--- a/xrdp/xrdp_types.h
+++ b/xrdp/xrdp_types.h
@@ -32,6 +32,14 @@
#define MAX_NR_CHANNELS 16
#define MAX_CHANNEL_NAME 16
+/* Code values used in 'xrdp_mm->code=' settings */
+#define XVNC_SESSION_CODE 0
+#define XRDP_SESSION_CODE 10
+#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 */
diff --git a/xrdp/xrdp_wm.c b/xrdp/xrdp_wm.c
index 97173496d3..b95c151abd 100644
--- a/xrdp/xrdp_wm.c
+++ b/xrdp/xrdp_wm.c
@@ -29,8 +29,6 @@
#include "log.h"
#include "string_calls.h"
-
-
/*****************************************************************************/
struct xrdp_wm *
xrdp_wm_create(struct xrdp_process *owner,
@@ -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);
@@ -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);
}
@@ -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);
@@ -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);
}
From 82bf205ef511504e20ae1f2bea87feac7080abf1 Mon Sep 17 00:00:00 2001
From: Koichiro Iwao
Date: Wed, 13 Mar 2024 09:47:02 +0900
Subject: [PATCH 4/6] Remove XRDP_SESSION_CODE which is no longer used
---
xrdp/xrdp_types.h | 1 -
1 file changed, 1 deletion(-)
diff --git a/xrdp/xrdp_types.h b/xrdp/xrdp_types.h
index 4acaa23635..1f9a85665f 100644
--- a/xrdp/xrdp_types.h
+++ b/xrdp/xrdp_types.h
@@ -34,7 +34,6 @@
/* Code values used in 'xrdp_mm->code=' settings */
#define XVNC_SESSION_CODE 0
-#define XRDP_SESSION_CODE 10
#define XORG_SESSION_CODE 20
/* To check whether touch events has been implemented on session type 'mm' */
From 999dc3f968281c155fea5e4e71dacd7882f1745b Mon Sep 17 00:00:00 2001
From: Koichiro Iwao
Date: Wed, 13 Mar 2024 13:29:43 +0900
Subject: [PATCH 5/6] Update NEWS for v0.9.25.1
---
NEWS.md | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/NEWS.md b/NEWS.md
index ae1adb8a9d..8a107585dc 100644
--- a/NEWS.md
+++ b/NEWS.md
@@ -1,3 +1,19 @@
+# Release notes for xrdp v0.9.25.1 (2024/03/13)
+
+This release fixes a bug that occurred in v0.9.25 where scrolling did not work in the Xvnc backend.
+
+Thanks to @bsmojver reporting the issue and testing!
+
+## General announcements
+_This is the last v0.9.x version which is released regularly. v0.9.x will be maintained for a while but less actively. New releases will happen only when severe security vulnerabilities or critical bugs are found._
+
+We have created a fund on [Open Collective](https://opencollective.com/xrdp-project). Support us if you like xrdp! Direct donations to each developer via GitHub Sponsors are also welcomed.
+
+## Bug fixes
+* Mouse wheel scrolling in Xvnc session no longer works in 0.9.25 (#2993 #2994)
+
+-----------------------
+
# Release notes for xrdp v0.9.25 (2024/03/11)
* Running xrdp and xrdp-sesman on separate hosts is still supported by this release, but is now deprecated. This is not secure. A future v1.0 release will replace the TCP socket used between these processes with a Unix Domain Socket, and then cross-host running will not be possible.
From 41c79932c8743aa0240a04dff6956a2af907766f Mon Sep 17 00:00:00 2001
From: Koichiro Iwao
Date: Wed, 13 Mar 2024 13:30:06 +0900
Subject: [PATCH 6/6] Bump version to v0.9.25.1
---
configure.ac | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
index 0991203f37..7b90a2c24d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,7 +1,7 @@
# Process this file with autoconf to produce a configure script
AC_PREREQ(2.65)
-AC_INIT([xrdp], [0.9.25], [xrdp-devel@googlegroups.com])
+AC_INIT([xrdp], [0.9.25.1], [xrdp-devel@googlegroups.com])
AC_CONFIG_HEADERS(config_ac.h:config_ac-h.in)
AM_INIT_AUTOMAKE([1.7.2 foreign])
AC_CONFIG_MACRO_DIR([m4])