XQuartz: Constrain the pointer to the updated display bounds on display reconfigure.
http://xquartz.macosforge.org/trac/ticket/346
This commit is contained in:
parent
927480be12
commit
ed31d50b5f
|
@ -241,6 +241,7 @@ void QuartzUpdateScreens(void) {
|
|||
WindowPtr pRoot;
|
||||
int x, y, width, height, sx, sy;
|
||||
xEvent e;
|
||||
BoxRec bounds;
|
||||
|
||||
if (noPseudoramiXExtension || screenInfo.numScreens != 1)
|
||||
{
|
||||
|
@ -277,8 +278,16 @@ void QuartzUpdateScreens(void) {
|
|||
//pScreen->PaintWindowBackground (pRoot, &pRoot->borderClip, PW_BACKGROUND);
|
||||
miPaintWindow(pRoot, &pRoot->borderClip, PW_BACKGROUND);
|
||||
|
||||
// TODO: This is a noop in 1.6 and nuked in master... we may need to do something else now to handle it
|
||||
// DefineInitialRootWindow(pRoot);
|
||||
/* <rdar://problem/7770779> pointer events are clipped to old display region after display reconfiguration
|
||||
* http://xquartz.macosforge.org/trac/ticket/346
|
||||
*/
|
||||
bounds.x1 = 0;
|
||||
bounds.x2 = width;
|
||||
bounds.y1 = 0;
|
||||
bounds.y2 = height;
|
||||
pScreen->ConstrainCursor(inputInfo.pointer, pScreen, &bounds);
|
||||
inputInfo.pointer->spriteInfo->sprite->physLimits = bounds;
|
||||
inputInfo.pointer->spriteInfo->sprite->hotLimits = bounds;
|
||||
|
||||
DEBUG_LOG("Root Window: %dx%d @ (%d, %d) darwinMainScreen (%d, %d) xy (%d, %d) dixScreenOrigins (%d, %d)\n", width, height, x - sx, y - sy, darwinMainScreenX, darwinMainScreenY, x, y, dixScreenOrigins[pScreen->myNum].x, dixScreenOrigins[pScreen->myNum].y);
|
||||
|
||||
|
|
Loading…
Reference in New Issue