Skip to content

Implement dynamic resolution in Resolution::MatchWindow mode

Fabio Bas requested to merge ctrlaltca/krdc:dynres into master

Implement dynamic resolution in Resolution::MatchWindow mode () This MR implements dynamic resolution, aka: resize the remote desktop to fit the current krdc window size. It requires an rdp server supporting the MS-RDPEDISP channel, eg. Windows >= 8.1. Dynamic resolution is only enabled for connections in Resolution::MatchWindow mode.

A couple of generic issues where found when implementing this MR and fixed aswell:

  • Krdc window size now correctly respects devicePixelRatio on startup and when the remote size changes
  • Safety guards have been added in Rdpview to ensure m_session exists when it's used

To avoid flooding the server with resolution changes when the window gets resized, a timer is used to delay the requests. Since the relevant code is running inside a non-Qt thread (created by freerdp), we can't use a QTimer. So, a simple timer implementation has been added.

Edited by Fabio Bas

Merge request reports

Loading