winex11.drv: Avoid grabbing syslevel locks in the wrong order.

This commit is contained in:
Ulrich Czekalla 2006-12-14 15:42:30 -05:00 committed by Alexandre Julliard
parent 7d98599d7d
commit 4d8135e0c8
2 changed files with 7 additions and 6 deletions

View File

@ -169,7 +169,7 @@ BOOL WINAPI wglMakeCurrent(HDC hdc, HGLRC hglrc)
if(hglrc == NULL) if(hglrc == NULL)
dc = OPENGL_GetDefaultDC(); dc = OPENGL_GetDefaultDC();
else else
dc = DC_GetDCPtr( hdc ); dc = DC_GetDCUpdate( hdc );
TRACE("hdc: (%p), hglrc: (%p)\n", hdc, hglrc); TRACE("hdc: (%p), hglrc: (%p)\n", hdc, hglrc);

View File

@ -1443,7 +1443,7 @@ PROC X11DRV_wglGetProcAddress(LPCSTR lpszProc)
* Adjust the current viewport and scissor in order to position * Adjust the current viewport and scissor in order to position
* and size the current drawable correctly on the parent window. * and size the current drawable correctly on the parent window.
*/ */
static void sync_current_drawable(void) static void sync_current_drawable(BOOL updatedc)
{ {
int dy; int dy;
int width; int width;
@ -1455,7 +1455,8 @@ static void sync_current_drawable(void)
if (ctx && ctx->physDev) if (ctx && ctx->physDev)
{ {
GetClipBox(ctx->physDev->hdc, &rc); /* Make sure physDev is up to date */ if (updatedc)
GetClipBox(ctx->physDev->hdc, &rc); /* Make sure physDev is up to date */
dy = ctx->physDev->drawable_rect.bottom - ctx->physDev->drawable_rect.top - dy = ctx->physDev->drawable_rect.bottom - ctx->physDev->drawable_rect.top -
ctx->physDev->dc_rect.bottom; ctx->physDev->dc_rect.bottom;
@ -1535,7 +1536,7 @@ BOOL X11DRV_wglMakeCurrent(X11DRV_PDEVICE *physDev, HGLRC hglrc) {
} }
else else
{ {
sync_current_drawable(); sync_current_drawable(FALSE);
} }
} }
} }
@ -1885,7 +1886,7 @@ static void WINAPI X11DRV_wglScissor(GLint x, GLint y, GLsizei width, GLsizei he
ctx->scissor.right = x + width; ctx->scissor.right = x + width;
ctx->scissor.bottom = y + height; ctx->scissor.bottom = y + height;
sync_current_drawable(); sync_current_drawable(TRUE);
} }
static void WINAPI X11DRV_wglViewport(GLint x, GLint y, GLsizei width, GLsizei height) static void WINAPI X11DRV_wglViewport(GLint x, GLint y, GLsizei width, GLsizei height)
@ -1897,7 +1898,7 @@ static void WINAPI X11DRV_wglViewport(GLint x, GLint y, GLsizei width, GLsizei h
ctx->viewport.right = x + width; ctx->viewport.right = x + width;
ctx->viewport.bottom = y + height; ctx->viewport.bottom = y + height;
sync_current_drawable(); sync_current_drawable(TRUE);
} }
/** /**