Fix handling of disabled screens.

This commit is contained in:
David Reveman 2008-10-04 22:07:22 -04:00
parent a1dd3fe551
commit 1c92cd5a25
3 changed files with 13 additions and 8 deletions

View file

@ -1512,6 +1512,10 @@ dmxAttachScreen (int idx,
if (!dmxScreen->scrnWin)
dmxScreen->scrnWin = DefaultRootWindow (dmxScreen->beDisplay);
XSelectInput (dmxScreen->beDisplay,
dmxScreen->scrnWin,
StructureNotifyMask);
dmxSetErrorHandler(dmxScreen);
dmxGetScreenAttribs(dmxScreen);
@ -1584,7 +1588,7 @@ dmxAttachScreen (int idx,
dmxScreen->name = strdup(attr->name);
else
dmxScreen->name = strdup(attr->displayName);
dmxScreen->beAttachedDisplay = dmxScreen->beDisplay;
dmxScreen->beDisplay = NULL;

View file

@ -148,10 +148,6 @@ void dmxBEScreenInit(int idx, ScreenPtr pScreen)
/* Handle screen savers and DPMS on the backend */
dmxDPMSInit(dmxScreen);
XSelectInput (dmxScreen->beDisplay,
dmxScreen->scrnWin,
StructureNotifyMask);
#ifdef RANDR
dmxBERRScreenInit (pScreen);
#endif
@ -991,7 +987,7 @@ dmxScreenBlockHandler (pointer blockData,
ScreenPtr pScreen = (ScreenPtr) blockData;
DMXScreenInfo *dmxScreen = &dmxScreens[pScreen->myNum];
if (dmxScreen->beDisplay)
if (dmxScreen->alive)
{
xcb_flush (dmxScreen->connection);
dmxScreenCheckForIOError (pScreen);
@ -1006,7 +1002,7 @@ dmxScreenWakeupHandler (pointer blockData,
ScreenPtr pScreen = (ScreenPtr) blockData;
DMXScreenInfo *dmxScreen = &dmxScreens[pScreen->myNum];
if (dmxScreen->beDisplay)
if (dmxScreen->alive)
dmxBEDispatch (pScreen);
}
@ -1193,7 +1189,12 @@ Bool dmxScreenInit(int idx, ScreenPtr pScreen, int argc, char *argv[])
dmxScreen->beBPP);
if (!dmxScreen->scrnWin && dmxScreen->beDisplay)
{
dmxScreen->scrnWin = DefaultRootWindow (dmxScreen->beDisplay);
XSelectInput (dmxScreen->beDisplay,
dmxScreen->scrnWin,
StructureNotifyMask);
}
#ifdef MITSHM
ShmRegisterDmxFuncs (pScreen);

View file

@ -88,7 +88,7 @@ dmxWaitForResponse (void)
for (i = 0; i < dmxNumScreens; i++)
{
if (dmxScreens[i].beDisplay && dmxScreens[i].alive)
if (dmxScreens[i].alive)
{
xcb_flush (dmxScreens[i].connection);