at master 1.4 kB view raw
1--- xf86-video-dummy-0.3.6/src/dummy_driver.c 2014-11-05 19:24:02.668656601 +0700 2+++ xf86-video-dummy-0.3.6.new/src/dummy_driver.c 2014-11-05 19:37:53.076061853 +0700 3@@ -55,6 +55,9 @@ 4 #include <X11/extensions/xf86dgaproto.h> 5 #endif 6 7+/* Needed for fixing pointer limits on resize */ 8+#include "inputstr.h" 9+ 10 /* Mandatory functions */ 11 static const OptionInfoRec * DUMMYAvailableOptions(int chipid, int busid); 12 static void DUMMYIdentify(int flags); 13@@ -713,6 +716,26 @@ 14 RRTellChanged(pScrn->pScreen); 15 } 16 #endif 17+ //ensure the screen dimensions are also updated: 18+ pScrn->pScreen->width = mode->HDisplay; 19+ pScrn->pScreen->height = mode->VDisplay; 20+ pScrn->virtualX = mode->HDisplay; 21+ pScrn->virtualY = mode->VDisplay; 22+ pScrn->frameX1 = mode->HDisplay; 23+ pScrn->frameY1 = mode->VDisplay; 24+ 25+ //ensure the pointer uses the new limits too: 26+ DeviceIntPtr pDev; 27+ SpritePtr pSprite; 28+ for (pDev = inputInfo.devices; pDev; pDev = pDev->next) { 29+ if (pDev->spriteInfo!=NULL && pDev->spriteInfo->sprite!=NULL) { 30+ pSprite = pDev->spriteInfo->sprite; 31+ pSprite->hotLimits.x2 = mode->HDisplay; 32+ pSprite->hotLimits.y2 = mode->VDisplay; 33+ pSprite->physLimits.x2 = mode->HDisplay; 34+ pSprite->physLimits.y2 = mode->VDisplay; 35+ } 36+ } 37 return TRUE; 38 } 39