mirror of
https://gitlab.freedesktop.org/xorg/xserver.git
synced 2026-05-07 08:38:03 +02:00
Add dmxCloseDisplay and make dmxOpenDisplay properly initilize
syncCookie and use AddEnableDevice.
This commit is contained in:
parent
bfd41ad4cb
commit
96322ebffc
4 changed files with 20 additions and 12 deletions
|
|
@ -1847,6 +1847,7 @@ dmxAttachScreen (int idx,
|
||||||
"WM running. cannot use back-end server "
|
"WM running. cannot use back-end server "
|
||||||
"root window\n");
|
"root window\n");
|
||||||
|
|
||||||
|
dmxCloseDisplay (dmxScreen);
|
||||||
/* Restore the old screen */
|
/* Restore the old screen */
|
||||||
*dmxScreen = oldDMXScreen;
|
*dmxScreen = oldDMXScreen;
|
||||||
return 1;
|
return 1;
|
||||||
|
|
@ -1918,9 +1919,7 @@ dmxAttachScreen (int idx,
|
||||||
dmxLogErrorSet (dmxWarning, errorSet, error, errorName,
|
dmxLogErrorSet (dmxWarning, errorSet, error, errorName,
|
||||||
"No matching visuals found");
|
"No matching visuals found");
|
||||||
XFree(dmxScreen->beVisuals);
|
XFree(dmxScreen->beVisuals);
|
||||||
XLIB_PROLOGUE (dmxScreen);
|
dmxCloseDisplay (dmxScreen);
|
||||||
XCloseDisplay(dmxScreen->beDisplay);
|
|
||||||
XLIB_EPILOGUE (dmxScreen);
|
|
||||||
|
|
||||||
/* Restore the old screen */
|
/* Restore the old screen */
|
||||||
*dmxScreen = oldDMXScreen;
|
*dmxScreen = oldDMXScreen;
|
||||||
|
|
@ -1945,9 +1944,7 @@ dmxAttachScreen (int idx,
|
||||||
XFree(dmxScreen->beVisuals);
|
XFree(dmxScreen->beVisuals);
|
||||||
XFree(dmxScreen->beDepths);
|
XFree(dmxScreen->beDepths);
|
||||||
XFree(dmxScreen->bePixmapFormats);
|
XFree(dmxScreen->bePixmapFormats);
|
||||||
XLIB_PROLOGUE (dmxScreen);
|
dmxCloseDisplay (dmxScreen);
|
||||||
XCloseDisplay(dmxScreen->beDisplay);
|
|
||||||
XLIB_EPILOGUE (dmxScreen);
|
|
||||||
|
|
||||||
/* Restore the old screen */
|
/* Restore the old screen */
|
||||||
*dmxScreen = oldDMXScreen;
|
*dmxScreen = oldDMXScreen;
|
||||||
|
|
@ -1961,9 +1958,7 @@ dmxAttachScreen (int idx,
|
||||||
XFree(dmxScreen->beVisuals);
|
XFree(dmxScreen->beVisuals);
|
||||||
XFree(dmxScreen->beDepths);
|
XFree(dmxScreen->beDepths);
|
||||||
XFree(dmxScreen->bePixmapFormats);
|
XFree(dmxScreen->bePixmapFormats);
|
||||||
XLIB_PROLOGUE (dmxScreen);
|
dmxCloseDisplay (dmxScreen);
|
||||||
XCloseDisplay(dmxScreen->beDisplay);
|
|
||||||
XLIB_EPILOGUE (dmxScreen);
|
|
||||||
|
|
||||||
/* Restore the old screen */
|
/* Restore the old screen */
|
||||||
*dmxScreen = oldDMXScreen;
|
*dmxScreen = oldDMXScreen;
|
||||||
|
|
|
||||||
|
|
@ -292,10 +292,23 @@ Bool dmxOpenDisplay(DMXScreenInfo *dmxScreen)
|
||||||
dmxScreen->fd = XConnectionNumber (dmxScreen->beDisplay);
|
dmxScreen->fd = XConnectionNumber (dmxScreen->beDisplay);
|
||||||
dmxScreen->connection = XGetXCBConnection (dmxScreen->beDisplay);
|
dmxScreen->connection = XGetXCBConnection (dmxScreen->beDisplay);
|
||||||
|
|
||||||
|
dmxScreen->syncCookie.sequence = 0;
|
||||||
|
|
||||||
|
AddEnabledDevice (dmxScreen->fd);
|
||||||
|
|
||||||
dmxPropertyDisplay(dmxScreen);
|
dmxPropertyDisplay(dmxScreen);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void dmxCloseDisplay(DMXScreenInfo *dmxScreen)
|
||||||
|
{
|
||||||
|
RemoveEnabledDevice (dmxScreen->fd);
|
||||||
|
|
||||||
|
XLIB_PROLOGUE (dmxScreen);
|
||||||
|
XCloseDisplay (dmxScreen->beDisplay);
|
||||||
|
XLIB_EPILOGUE (dmxScreen);
|
||||||
|
}
|
||||||
|
|
||||||
void dmxSetErrorHandler(DMXScreenInfo *dmxScreen)
|
void dmxSetErrorHandler(DMXScreenInfo *dmxScreen)
|
||||||
{
|
{
|
||||||
XSetErrorHandler(dmxErrorHandler);
|
XSetErrorHandler(dmxErrorHandler);
|
||||||
|
|
|
||||||
|
|
@ -40,6 +40,7 @@
|
||||||
#include "scrnintstr.h"
|
#include "scrnintstr.h"
|
||||||
|
|
||||||
extern Bool dmxOpenDisplay(DMXScreenInfo *dmxScreen);
|
extern Bool dmxOpenDisplay(DMXScreenInfo *dmxScreen);
|
||||||
|
extern void dmxCloseDisplay(DMXScreenInfo *dmxScreen);
|
||||||
extern void dmxSetErrorHandler(DMXScreenInfo *dmxScreen);
|
extern void dmxSetErrorHandler(DMXScreenInfo *dmxScreen);
|
||||||
extern void dmxCheckForWM(DMXScreenInfo *dmxScreen);
|
extern void dmxCheckForWM(DMXScreenInfo *dmxScreen);
|
||||||
extern void dmxGetScreenAttribs(DMXScreenInfo *dmxScreen);
|
extern void dmxGetScreenAttribs(DMXScreenInfo *dmxScreen);
|
||||||
|
|
|
||||||
|
|
@ -55,6 +55,7 @@
|
||||||
#include "dmxdpms.h"
|
#include "dmxdpms.h"
|
||||||
#include "dmxlog.h"
|
#include "dmxlog.h"
|
||||||
#include "dmxcb.h"
|
#include "dmxcb.h"
|
||||||
|
#include "dmxinit.h"
|
||||||
|
|
||||||
#ifdef PANORAMIX
|
#ifdef PANORAMIX
|
||||||
#include "panoramiX.h"
|
#include "panoramiX.h"
|
||||||
|
|
@ -2374,9 +2375,7 @@ void dmxBECloseScreen(ScreenPtr pScreen)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Close display */
|
/* Close display */
|
||||||
XLIB_PROLOGUE (dmxScreen);
|
dmxCloseDisplay (dmxScreen);
|
||||||
XCloseDisplay(dmxScreen->beDisplay);
|
|
||||||
XLIB_EPILOGUE (dmxScreen);
|
|
||||||
dmxScreen->beDisplay = NULL;
|
dmxScreen->beDisplay = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue