Merge branch 'master' of git+ssh://git.freedesktop.org/git/xorg/xserver into input-hotplug

This commit is contained in:
Daniel Stone 2006-08-24 23:35:28 +03:00 committed by Daniel Stone
commit 3a36b0a24a
4 changed files with 50 additions and 15 deletions

View File

@ -468,7 +468,7 @@ symlink_mesa_shader_slang_library() {
action slang_core_gc.h action slang_core_gc.h
action slang_fragment_builtin_gc.h action slang_fragment_builtin_gc.h
action slang_shader_syn.h action slang_shader_syn.h
action slang_version_syn.h action slang_pp_version_syn.h
action slang_vertex_builtin_gc.h action slang_vertex_builtin_gc.h
} }

View File

@ -571,24 +571,40 @@ xf86InitOrigins(void)
/* force edge lists */ /* force edge lists */
if(screen->left) { if(screen->left) {
ref = screen->left->screennum; ref = screen->left->screennum;
if (! xf86Screens[ref] || ! xf86Screens[ref]->pScreen) {
ErrorF("Referenced uninitialized screen in Layout!\n");
break;
}
pLayout->left = AddEdge(pLayout->left, pLayout->left = AddEdge(pLayout->left,
0, xf86Screens[i]->pScreen->height, 0, xf86Screens[i]->pScreen->height,
xf86Screens[ref]->pScreen->width, 0, ref); xf86Screens[ref]->pScreen->width, 0, ref);
} }
if(screen->right) { if(screen->right) {
ref = screen->right->screennum; ref = screen->right->screennum;
if (! xf86Screens[ref] || ! xf86Screens[ref]->pScreen) {
ErrorF("Referenced uninitialized screen in Layout!\n");
break;
}
pScreen = xf86Screens[i]->pScreen; pScreen = xf86Screens[i]->pScreen;
pLayout->right = AddEdge(pLayout->right, pLayout->right = AddEdge(pLayout->right,
0, pScreen->height, -pScreen->width, 0, ref); 0, pScreen->height, -pScreen->width, 0, ref);
} }
if(screen->top) { if(screen->top) {
ref = screen->top->screennum; ref = screen->top->screennum;
if (! xf86Screens[ref] || ! xf86Screens[ref]->pScreen) {
ErrorF("Referenced uninitialized screen in Layout!\n");
break;
}
pLayout->up = AddEdge(pLayout->up, pLayout->up = AddEdge(pLayout->up,
0, xf86Screens[i]->pScreen->width, 0, xf86Screens[i]->pScreen->width,
0, xf86Screens[ref]->pScreen->height, ref); 0, xf86Screens[ref]->pScreen->height, ref);
} }
if(screen->bottom) { if(screen->bottom) {
ref = screen->bottom->screennum; ref = screen->bottom->screennum;
if (! xf86Screens[ref] || ! xf86Screens[ref]->pScreen) {
ErrorF("Referenced uninitialized screen in Layout!\n");
break;
}
pScreen = xf86Screens[i]->pScreen; pScreen = xf86Screens[i]->pScreen;
pLayout->down = AddEdge(pLayout->down, pLayout->down = AddEdge(pLayout->down,
0, pScreen->width, 0, -pScreen->height, ref); 0, pScreen->width, 0, -pScreen->height, ref);
@ -604,6 +620,10 @@ xf86InitOrigins(void)
break; break;
case PosRelative: case PosRelative:
ref = screen->refscreen->screennum; ref = screen->refscreen->screennum;
if (! xf86Screens[ref] || ! xf86Screens[ref]->pScreen) {
ErrorF("Referenced uninitialized screen in Layout!\n");
break;
}
if(screensLeft & (1 << ref)) break; if(screensLeft & (1 << ref)) break;
dixScreenOrigins[i].x = dixScreenOrigins[ref].x + screen->x; dixScreenOrigins[i].x = dixScreenOrigins[ref].x + screen->x;
dixScreenOrigins[i].y = dixScreenOrigins[ref].y + screen->y; dixScreenOrigins[i].y = dixScreenOrigins[ref].y + screen->y;
@ -611,6 +631,10 @@ xf86InitOrigins(void)
break; break;
case PosRightOf: case PosRightOf:
ref = screen->refscreen->screennum; ref = screen->refscreen->screennum;
if (! xf86Screens[ref] || ! xf86Screens[ref]->pScreen) {
ErrorF("Referenced uninitialized screen in Layout!\n");
break;
}
if(screensLeft & (1 << ref)) break; if(screensLeft & (1 << ref)) break;
pScreen = xf86Screens[ref]->pScreen; pScreen = xf86Screens[ref]->pScreen;
dixScreenOrigins[i].x = dixScreenOrigins[i].x =
@ -620,6 +644,10 @@ xf86InitOrigins(void)
break; break;
case PosLeftOf: case PosLeftOf:
ref = screen->refscreen->screennum; ref = screen->refscreen->screennum;
if (! xf86Screens[ref] || ! xf86Screens[ref]->pScreen) {
ErrorF("Referenced uninitialized screen in Layout!\n");
break;
}
if(screensLeft & (1 << ref)) break; if(screensLeft & (1 << ref)) break;
pScreen = xf86Screens[i]->pScreen; pScreen = xf86Screens[i]->pScreen;
dixScreenOrigins[i].x = dixScreenOrigins[i].x =
@ -629,6 +657,10 @@ xf86InitOrigins(void)
break; break;
case PosBelow: case PosBelow:
ref = screen->refscreen->screennum; ref = screen->refscreen->screennum;
if (! xf86Screens[ref] || ! xf86Screens[ref]->pScreen) {
ErrorF("Referenced uninitialized screen in Layout!\n");
break;
}
if(screensLeft & (1 << ref)) break; if(screensLeft & (1 << ref)) break;
pScreen = xf86Screens[ref]->pScreen; pScreen = xf86Screens[ref]->pScreen;
dixScreenOrigins[i].x = dixScreenOrigins[ref].x; dixScreenOrigins[i].x = dixScreenOrigins[ref].x;
@ -638,6 +670,10 @@ xf86InitOrigins(void)
break; break;
case PosAbove: case PosAbove:
ref = screen->refscreen->screennum; ref = screen->refscreen->screennum;
if (! xf86Screens[ref] || ! xf86Screens[ref]->pScreen) {
ErrorF("Referenced uninitialized screen in Layout!\n");
break;
}
if(screensLeft & (1 << ref)) break; if(screensLeft & (1 << ref)) break;
pScreen = xf86Screens[i]->pScreen; pScreen = xf86Screens[i]->pScreen;
dixScreenOrigins[i].x = dixScreenOrigins[ref].x; dixScreenOrigins[i].x = dixScreenOrigins[ref].x;

View File

@ -304,7 +304,6 @@ winTopLevelWindowProc (HWND hwnd, UINT message,
winScreenInfo *s_pScreenInfo = NULL; winScreenInfo *s_pScreenInfo = NULL;
HWND hwndScreen = NULL; HWND hwndScreen = NULL;
DrawablePtr pDraw = NULL; DrawablePtr pDraw = NULL;
int iX, iY, iWidth, iHeight, iBorder;
winWMMessageRec wmMsg; winWMMessageRec wmMsg;
Bool fWMMsgInitialized = FALSE; Bool fWMMsgInitialized = FALSE;
static Bool s_fTracking = FALSE; static Bool s_fTracking = FALSE;
@ -442,20 +441,19 @@ winTopLevelWindowProc (HWND hwnd, UINT message,
/* BeginPaint gives us an hdc that clips to the invalidated region */ /* BeginPaint gives us an hdc that clips to the invalidated region */
hdcUpdate = BeginPaint (hwnd, &ps); hdcUpdate = BeginPaint (hwnd, &ps);
/* Avoid the BitBlt's if the PAINTSTRUCT is bogus */
/* Get the position and dimensions of the window */ if (ps.rcPaint.right==0 && ps.rcPaint.bottom==0 && ps.rcPaint.left==0 && ps.rcPaint.top==0)
iBorder = wBorderWidth (pWin); {
iX = pWin->drawable.x; EndPaint (hwndScreen, &ps);
iY = pWin->drawable.y; return 0;
iWidth = pWin->drawable.width; }
iHeight = pWin->drawable.height;
/* Try to copy from the shadow buffer */ /* Try to copy from the shadow buffer */
if (!BitBlt (hdcUpdate, if (!BitBlt (hdcUpdate,
0, 0, ps.rcPaint.left, ps.rcPaint.top,
iWidth, iHeight, ps.rcPaint.right - ps.rcPaint.left, ps.rcPaint.bottom - ps.rcPaint.top,
s_pScreenPriv->hdcShadow, s_pScreenPriv->hdcShadow,
iX, iY, ps.rcPaint.left + pWin->drawable.x, ps.rcPaint.top + pWin->drawable.y,
SRCCOPY)) SRCCOPY))
{ {
LPVOID lpMsgBuf; LPVOID lpMsgBuf;

View File

@ -540,8 +540,9 @@ winShadowUpdateGDI (ScreenPtr pScreen,
* handle large regions by creating a clipping region and * handle large regions by creating a clipping region and
* doing a single blit constrained to that clipping region. * doing a single blit constrained to that clipping region.
*/ */
if (pScreenInfo->dwClipUpdatesNBoxes == 0 if (!pScreenInfo->fMultiWindow &&
|| dwBox < pScreenInfo->dwClipUpdatesNBoxes) (pScreenInfo->dwClipUpdatesNBoxes == 0 ||
dwBox < pScreenInfo->dwClipUpdatesNBoxes))
{ {
/* Loop through all boxes in the damaged region */ /* Loop through all boxes in the damaged region */
while (dwBox--) while (dwBox--)
@ -566,7 +567,7 @@ winShadowUpdateGDI (ScreenPtr pScreen,
++pBox; ++pBox;
} }
} }
else else if (!pScreenInfo->fMultiWindow)
{ {
/* Compute a GDI region from the damaged region */ /* Compute a GDI region from the damaged region */
hrgnCombined = CreateRectRgn (pBox->x1, pBox->y1, pBox->x2, pBox->y2); hrgnCombined = CreateRectRgn (pBox->x1, pBox->y1, pBox->x2, pBox->y2);