https://bugs.winehq.org/show_bug.cgi?id=48428
Bug ID: 48428 Summary: winex11.drv: Broken fullscreen handling in Adobe Lightroom (tiled screen) Product: Wine Version: 4.20 Hardware: x86 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: winex11.drv Assignee: wine-bugs@winehq.org Reporter: bugs@bzatek.net CC: zzhang@codeweavers.com Regression SHA1: 914b5519b1cd96f9ae19f1eec226e94af96354b9 Distribution: Gentoo
Created attachment 66196 --> https://bugs.winehq.org/attachment.cgi?id=66196 Screenshot at fullscreen mode 3
The winex11.drv changes introduced in wine-4.20 broke fullscreen handling in Adobe Lightroom 8.x and 9.x:
914b5519b1cd96f9ae19f1eec226e94af96354b9 winex11.drv: Use a separate virtual desktop display device handler.
acf03ed9da0f7d3f94de9b47c44366be3ee47f8e winex11.drv: Get virtual desktop size limit from the host primary display.
b7b4bacaf99661e07c2f07a0260680b4e8bed4f8 winex11.drv: Move the desktop fullscreen check after desktop init.
427152ec7b4ee85631617b693dbf1deea763c0ba winex11.drv: Fix NoRes mode handler having an empty mode.
There are three fullscreen modes in Adobe Lightroom, switchable via Ctrl+F (cycling) or Window -> Screen Mode menu:
1. "Normal" - no fullscreen, regular resizeable window decorated by the WM, can be maximized. Everything is rendered properly in this case. 2. "Full Screen with Menubar" - no WM decorations, the window takes dimension of a maximized window, i.e. the desktop environment panels are shown. 3. "Full Screen" - true fullscreen, taking whole screen dimensions, DE panels are hidden.
Now my screen setup may be a little exotic - I'm using a tiled monitor connected via two inputs. xrandr sees two connected outputs, 2560x2880 each, exposing a TILE property that the window manager (marco, a metacity clone) properly uses and composes final screen of 5120x2880 dimension.
What I think it's missing here in Wine is a tiled monitor awareness. The issue is that only half of the screen (one tile/output) is rendered in modes 2 and 3, the other half is "dead" - displaying stale buffer from the WM compositor. However, the WM sees proper size of the window (5120x2880, confirmed by sniffing via `xwininfo`), all input events are properly directed there, however it's the wine that renders only one tile. The running application - Lightroom - is however rendered properly within the dimensions of that one tile (2560x2880), meaning all UI elements are visible and working.
The workaround for the time being is to use virtual desktop where rendering is correct in any of the above mentioned modes.
As a side note, prior to the changes the virtual desktop that equals screen size will get automatically fullscreened on startup. That's not the case after the changes where user needs to manually make the virtual desktop fullscreen via WM keybinding.