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