Code cleanups I keep forgetting to commit...

This commit is contained in:
Ben Anderson
2005-03-26 16:39:53 +00:00
parent 9b68e25fc8
commit 80d6e78069
+47 -50
View File
@@ -10,27 +10,14 @@
#include "RageThreads.h" // Don't make me list everything...
vector<long> pMasks; // Currently open masks
bool pHaveWin = false; // Do we have a window?
unsigned short int pCt = 0; // Number of subsystems
// using the X connection
Display *X11Helper::Dpy = NULL;
Window X11Helper::Win;
int protoErrorCallback(Display *d, XErrorEvent *err)
{
char errText[512];
XGetErrorText(d, err->error_code, errText, 512);
LOG->Warn("X11 Protocol error %s (%d) has occurred, caused by request %d,%d, resource ID %d",
errText, err->error_code, err->request_code, err->minor_code, err->resourceid);
return 0; // Xlib ignores our return value
}
int protoFatalCallback(Display *d)
{
RageException::Throw("Fatal I/O error communicating with X server.");
}
int protoErrorCallback(Display*, XErrorEvent*);
int protoFatalCallback(Display*);
bool X11Helper::Go()
{
@@ -49,36 +36,24 @@ bool X11Helper::Go()
return true;
}
static bool pApplyMasks()
void X11Helper::Stop()
{
unsigned int i;
long finalMask = 0;
pCt--;
LOG->Trace("X11Helper: Reapplying event masks.");
i = 0;
while(i < pMasks.size() )
if(pCt == 0)
{
finalMask |= pMasks[i];
i++;
XCloseDisplay(Dpy);
Dpy = NULL; // For sanity's sake
pMasks.clear();
}
if(XSelectInput(X11Helper::Dpy, X11Helper::Win, finalMask) == 0) { return false; }
return true;
}
static bool pApplyMasks();
bool X11Helper::OpenMask(long mask)
{
pMasks.push_back(mask);
if(pHaveWin)
{
return pApplyMasks();
}
else
{
return true;
}
return pApplyMasks();
}
bool X11Helper::CloseMask(long mask)
@@ -93,27 +68,45 @@ bool X11Helper::CloseMask(long mask)
pMasks.erase(i);
break;
}
if(i == pMasks.end() ) { return false; }
if(i == pMasks.end() ) { return true; } // Never set in the
// first place...
i++;
}
if(pHaveWin)
return pApplyMasks();
}
static bool pApplyMasks()
{
if(X11Helper::Dpy != NULL)
{
return pApplyMasks();
}
else
{
return true;
long finalMask = 0;
LOG->Trace("X11Helper: Reapplying event masks.");
unsigned int i = 0;
while(i < pMasks.size() )
{
finalMask |= pMasks[i];
i++;
}
if(XSelectInput(X11Helper::Dpy, X11Helper::Win, finalMask) == 0) { return false; }
}
return true;
}
bool X11Helper::MakeWindow(int screenNum, int depth, Visual *visual, int width, int height)
{
static bool pHaveWin = false;
vector<long>::iterator i;
if(pCt == 0) { return false; }
if(pHaveWin) { XDestroyWindow(Dpy, Win); pHaveWin = false; }
// pHaveWin will stay false if an error occurs once I do error
// checking here...
XSetWindowAttributes winAttribs;
@@ -140,15 +133,19 @@ bool X11Helper::MakeWindow(int screenNum, int depth, Visual *visual, int width,
return true;
}
void X11Helper::Stop()
int protoErrorCallback(Display *d, XErrorEvent *err)
{
pCt--;
char errText[512];
XGetErrorText(d, err->error_code, errText, 512);
LOG->Warn("X11 Protocol error %s (%d) has occurred, caused by request %d,%d, resource ID %d",
errText, err->error_code, err->request_code, err->minor_code, err->resourceid);
if(pCt == 0)
{
XCloseDisplay(Dpy);
pMasks.clear();
}
return 0; // Xlib ignores our return value
}
int protoFatalCallback(Display *d)
{
RageException::Throw("Fatal I/O error communicating with X server.");
}
/*