Bug 7579 - Dual head full screen from maximized on Windows doesn't work
Summary: Dual head full screen from maximized on Windows doesn't work
Status: NEW
Alias: None
Product: ThinLinc
Classification: Unclassified
Component: VNC (show other bugs)
Version: trunk
Hardware: PC Unknown
: P2 Normal
Target Milestone: MediumPrio
Assignee: Bugzilla mail exporter
Depends on:
Reported: 2020-11-03 13:25 CET by Pierre Ossman
Modified: 2022-04-26 08:30 CEST (History)
0 users

See Also:
Acceptance Criteria:

test program (3.44 KB, text/x-c++src)
2020-11-04 16:13 CET, Pierre Ossman

Description Pierre Ossman cendio 2020-11-03 13:25:02 CET
When trying to enter dual head full screen from a maximized state on Windows results in the client properly entering dual head full screen, but the session is only resized to the size of a single monitor.

Leaving and re-entering full screen fixes the issue.

It doesn't matter if you start out maximized or if you first maximize the client before attempting full screen.

The issue can be seen whilst reconnecting and can be reproduced multiple times with the same client by disconnecting and reconnecting to the same session.

The issue is not seen on Linux.

Tested with 4.10.0, 4.12.0, and a nightly build, so it doesn't look like a regression.
Comment 2 Pierre Ossman cendio 2020-11-04 16:13:12 CET
Unfortunately this smells like a Windows bug. I used Spy++ and I can not find any differences between a working window and broken one. So it seems to be something internal.

It is also not just a rendering bug. Windows' window manager doesn't really consider the window fully there. This can be seen in two ways:

 a) Clicks go straight through the window and are instead sent to whatever is below.

 b) When finding windows in Spy++ it also just sees what's behind the window.

I've tried to work around this in various ways by setting different window styles, giving various flags to SetWindowPos() and using ShowWindow() in different ways. I could only find a single thing that works, and that's doing ShowWindow(SW_RESTORE) before going fullscreen. This is not a very nice workaround though as you get a window jumping around as it unmaximizes before going properly to fullscreen.

It is not a TigerVNC or even FLTK issue as I can see this with a simple pure Win32 test program.

I could not find any existing code to look at. Neither GTK+, Qt, Chrome or Firefox support fullscreen over multiple monitors (on Windows at least).

I've reported this in Microsoft's feedback hub but I doubt I'll get much attention to it without a support issue opened.
Comment 3 Pierre Ossman cendio 2020-11-04 16:13:43 CET
Created attachment 964 [details]
test program

Note You need to log in before you can comment on or make changes to this bug.