Module: wine Branch: master Commit: c5a95025cf9efedfe182637d79b7add2740bb72f URL: http://source.winehq.org/git/wine.git/?a=commit;h=c5a95025cf9efedfe182637d79...
Author: Alexandre Julliard julliard@winehq.org Date: Thu Jan 17 19:59:22 2008 +0100
winex11.drv: Moved initialization of screen_width/height to xinerama_init to do it inside the x11 lock.
---
dlls/winex11.drv/desktop.c | 4 +--- dlls/winex11.drv/winpos.c | 4 +--- dlls/winex11.drv/x11drv.h | 2 +- dlls/winex11.drv/x11drv_main.c | 5 +---- dlls/winex11.drv/xinerama.c | 4 ++-- 5 files changed, 6 insertions(+), 13 deletions(-)
diff --git a/dlls/winex11.drv/desktop.c b/dlls/winex11.drv/desktop.c index 1ec6a5d..23a6675 100644 --- a/dlls/winex11.drv/desktop.c +++ b/dlls/winex11.drv/desktop.c @@ -110,9 +110,7 @@ void X11DRV_init_desktop( Window win, unsigned int width, unsigned int height ) root_window = win; max_width = screen_width; max_height = screen_height; - screen_width = width; - screen_height = height; - xinerama_init(); + xinerama_init( width, height );
/* initialize the available resolutions */ dd_modes = X11DRV_Settings_SetHandlers("desktop", diff --git a/dlls/winex11.drv/winpos.c b/dlls/winex11.drv/winpos.c index 39ac43a..ba91e8b 100644 --- a/dlls/winex11.drv/winpos.c +++ b/dlls/winex11.drv/winpos.c @@ -884,9 +884,7 @@ void X11DRV_resize_desktop( unsigned int width, unsigned int height ) SetRect( &resize_data.old_screen_rect, 0, 0, screen_width, screen_height ); resize_data.old_virtual_rect = virtual_screen_rect;
- screen_width = width; - screen_height = height; - xinerama_init(); + xinerama_init( width, height ); ClipCursor(NULL);
if (!(data = X11DRV_get_win_data( hwnd ))) diff --git a/dlls/winex11.drv/x11drv.h b/dlls/winex11.drv/x11drv.h index 6f71b75..d74dd59 100644 --- a/dlls/winex11.drv/x11drv.h +++ b/dlls/winex11.drv/x11drv.h @@ -731,7 +731,7 @@ extern void X11DRV_sync_window_position( Display *display, struct x11drv_win_dat extern BOOL X11DRV_SetWindowPos( HWND hwnd, HWND insert_after, const RECT *rectWindow, const RECT *rectClient, UINT swp_flags, const RECT *validRects ); extern void X11DRV_set_wm_hints( Display *display, struct x11drv_win_data *data ); -extern void xinerama_init(void); +extern void xinerama_init( unsigned int width, unsigned int height );
extern void X11DRV_init_desktop( Window win, unsigned int width, unsigned int height ); extern void X11DRV_resize_desktop(unsigned int width, unsigned int height); diff --git a/dlls/winex11.drv/x11drv_main.c b/dlls/winex11.drv/x11drv_main.c index 11cd33a..a84c65b 100644 --- a/dlls/winex11.drv/x11drv_main.c +++ b/dlls/winex11.drv/x11drv_main.c @@ -528,10 +528,7 @@ static BOOL process_attach(void)
if (TRACE_ON(synchronous)) XSynchronize( display, True );
- screen_width = WidthOfScreen( screen ); - screen_height = HeightOfScreen( screen ); - - xinerama_init(); + xinerama_init( WidthOfScreen(screen), HeightOfScreen(screen) ); X11DRV_Settings_Init();
#ifdef HAVE_LIBXXF86VM diff --git a/dlls/winex11.drv/xinerama.c b/dlls/winex11.drv/xinerama.c index 75b905a..8602151 100644 --- a/dlls/winex11.drv/xinerama.c +++ b/dlls/winex11.drv/xinerama.c @@ -134,14 +134,14 @@ static inline int query_screens(void)
#endif /* SONAME_LIBXINERAMA */
-void xinerama_init(void) +void xinerama_init( unsigned int width, unsigned int height ) { MONITORINFOEXW *primary; int i;
wine_tsx11_lock();
- SetRect( &virtual_screen_rect, 0, 0, screen_width, screen_height ); + SetRect( &virtual_screen_rect, 0, 0, width, height );
if (root_window != DefaultRootWindow( gdi_display ) || !query_screens()) {