Signed-off-by: Zhiyi Zhang zzhang@codeweavers.com --- dlls/winex11.drv/xrandr.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-)
diff --git a/dlls/winex11.drv/xrandr.c b/dlls/winex11.drv/xrandr.c index cc881889430..4bbba15a259 100644 --- a/dlls/winex11.drv/xrandr.c +++ b/dlls/winex11.drv/xrandr.c @@ -466,6 +466,16 @@ static void get_screen_size( XRRScreenResources *resources, unsigned int *width, } }
+static void set_screen_size( int width, int height ) +{ + int screen = default_visual.screen; + int mm_width, mm_height; + + mm_width = width * DisplayWidthMM( gdi_display, screen ) / DisplayWidth( gdi_display, screen ); + mm_height = height * DisplayHeightMM( gdi_display, screen ) / DisplayHeight( gdi_display, screen ); + pXRRSetScreenSize( gdi_display, root_window, width, height, mm_width, mm_height ); +} + static LONG xrandr12_set_current_mode( int mode ) { unsigned int screen_width, screen_height; @@ -515,12 +525,7 @@ static LONG xrandr12_set_current_mode( int mode ) get_screen_size( resources, &screen_width, &screen_height ); screen_width = max( screen_width, crtc_info->x + dd_modes[mode].width ); screen_height = max( screen_height, crtc_info->y + dd_modes[mode].height ); - - pXRRSetScreenSize( gdi_display, root_window, screen_width, screen_height, - screen_width * DisplayWidthMM( gdi_display, default_visual.screen ) - / DisplayWidth( gdi_display, default_visual.screen ), - screen_height * DisplayHeightMM( gdi_display, default_visual.screen ) - / DisplayHeight( gdi_display, default_visual.screen )); + set_screen_size( screen_width, screen_height );
status = pXRRSetCrtcConfig( gdi_display, resources, resources->crtcs[primary_crtc], CurrentTime, crtc_info->x, crtc_info->y, xrandr12_modes[mode],
Hi,
While running your changed tests, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=76044
Your paranoid android.
=== debiant (32 bit report) ===
user32: monitor: Timeout msg: Timeout resource: Timeout scroll: Timeout static: Timeout
=== debiant (build log) ===
The task timed out
=== debiant (32 bit WoW report) ===
user32: monitor: Timeout
=== debiant (64 bit WoW report) ===
user32: input.c:2514: Test failed: 4: Unexpected cursor movement input.c:2514: Test failed: 5: Unexpected cursor movement input.c:2514: Test failed: 6: Unexpected cursor movement input.c:2514: Test failed: 7: Unexpected cursor movement input.c:2514: Test failed: 8: Unexpected cursor movement input.c:2235: Test failed: 9: foreground process expected WM_MOUSEMOVE message input.c:2514: Test failed: 9: Unexpected cursor movement input.c:2235: Test failed: 10: foreground process expected WM_MOUSEMOVE message input.c:2514: Test failed: 10: Unexpected cursor movement input.c:2235: Test failed: 11: foreground process expected WM_MOUSEMOVE message input.c:2514: Test failed: 11: Unexpected cursor movement input.c:2235: Test failed: 12: foreground process expected WM_MOUSEMOVE message input.c:2514: Test failed: 12: Unexpected cursor movement input.c:2514: Test failed: 13: Unexpected cursor movement input.c:2514: Test failed: 14: Unexpected cursor movement input.c:2514: Test failed: 15: Unexpected cursor movement input.c:2514: Test failed: 16: Unexpected cursor movement monitor: Timeout msg: Timeout resource: Timeout scroll: Timeout
=== debiant (build log) ===
The task timed out