Skip to content

Resolution/workarea regression from 0.9.24-4 to 0.10.x #3618

@alkisg

Description

@alkisg

xrdp version

0.10.1-3.1

Detailed xrdp version, build options

root@gmgmt:~# xrdp --version
xrdp 0.10.1
  A Remote Desktop Protocol Server.
  Copyright (C) 2004-2024 Jay Sorg, Neutrino Labs, and all contributors.
  See https://github.com/neutrinolabs/xrdp for more information.

  Configure options:
      --enable-ipv6
      --enable-jpeg
      --enable-fuse
      --enable-rfxcodec
      --enable-opus
      --enable-painter
      --enable-pam
      --enable-pam-config=debian
      --enable-vsock
      --build=x86_64-linux-gnu
      --prefix=/usr
      --includedir=${prefix}/include
      --mandir=${prefix}/share/man
      --infodir=${prefix}/share/info
      --sysconfdir=/etc
      --localstatedir=/var
      --disable-silent-rules
      --libdir=${prefix}/lib/x86_64-linux-gnu
      --libexecdir=${prefix}/lib/x86_64-linux-gnu
      --disable-maintainer-mode
      --disable-dependency-tracking
      --with-socketdir=/run/xrdp/sockdir
      build_alias=x86_64-linux-gnu
      CFLAGS=-g -O2 -Werror=implicit-function-declaration -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -ffile-prefix-map=/build/xrdp-Ol8grW/xrdp-0.10.1=. -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -fdebug-prefix-map=/build/xrdp-Ol8grW/xrdp-0.10.1=/usr/src/xrdp-0.10.1-3.1
      LDFLAGS=-Wl,-Bsymbolic-functions -flto=auto -ffat-lto-objects -Wl,-z,relro -Wl,-z,now -Wl,--as-needed
      CPPFLAGS=-Wdate-time -D_FORTIFY_SOURCE=3
      CXXFLAGS=-g -O2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -ffile-prefix-map=/build/xrdp-Ol8grW/xrdp-0.10.1=. -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -fdebug-prefix-map=/build/xrdp-Ol8grW/xrdp-0.10.1=/usr/src/xrdp-0.10.1-3.1
      PKG_CONFIG_PATH=/build/xrdp-Ol8grW/xrdp-0.10.1/pkgconfig

  Compiled with OpenSSL 3.0.13 30 Jan 2024

Operating system & version

Ubuntu 24.04

Installation method

dnf / apt / zypper / pkg / etc

Which backend do you use?

xorgxrdp

What desktop environment do you use?

xterm

Environment xrdp running on

Physical, amdgpu

What's your client?

Ubuntu xfreerdp

Area(s) with issue?

Graphic glitches

Steps to reproduce

To reproduce a "wrong resolution or workarea" issue with xrdp 0.10.1-3.1:

  • I've installed xrdp from Ubuntu 25.10 on my remote Ubuntu MATE 24.04; one should be able to reproduce it with the Ubuntu MATE 25.10 live CD
  • I've set xterm as my session manager: sudo ln -sf /usr/bin/xterm /etc/alternatives/x-session-manager
  • I've launched xfreerdp from a local Ubuntu with: xfreerdp /dynamic-resolution /workarea /u:alkisg /v:server
  • On xterm inside the xfreerdp session, I've ran xrandr

✔️ Expected Behavior

On my setup, the reported xrandr resolution should be 1920x1008 for a maximized xfreerdp window.

❌ Actual Behavior

  • The xrandr output was wrong: 1920x1036
  • The xfreerdp window content area was correct: 1920x1008
  • There were no scrollbars in the xfreerdp window, so when I'm using a MATE session instead of xterm, the bottom panel is hidden below the visible area, and I can't scroll down to see it

Un-maximizing xfreerdp and then maximizing it again made xfreerdp do a "screen resize" event, which then gave the correct 1920x1008 resolution. So it's like it didn't correctly detect my local workarea initially.

Anything else?

I've tested on a single remote server, but from many local workstations, e.g. Kubuntu 24.04 with freerdp2, Ubuntu GNOME 25.04 with freerdp3. The local freerdp version or Ubuntu OS or resolution doesn't seem to matter.
The 1036-1008=28 pixels difference appears to be a miscalculation involving the xfreerdp window title bar size.

  1. If I omit /workarea from xfreerdp to make it default to 1024x768, or if I use any /size: parameter up to 1920x1007, I get a "not maximized" xfreerdp window and I don't see the issue.
  2. If I replace /workarea with /size:1920x1008, I get a maximized xfreerdp window and I don't see the issue. This is the best workaround I've found so far for my use case.
  3. If I replace /workarea with any /size: parameter greater than 1008, I get a maximized xfreerdp window and I do see the issue.

So it might be possible that xfreerdp is mis-reporting something, and the old XRDP somehow worked around this.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions