DIX: Clean up null root cursor handling

Move the null root cursor handling out of main() and into CreateRootCursor.
This commit is contained in:
Daniel Stone 2007-07-08 20:48:57 +03:00
parent 62ec6d09b3
commit 0afeb0241a
2 changed files with 20 additions and 16 deletions

View File

@ -430,25 +430,41 @@ AllocGlyphCursor(Font source, unsigned sourceChar, Font mask, unsigned maskChar,
*************************************************************/
CursorPtr
CreateRootCursor(char *pfilename, unsigned glyph)
CreateRootCursor(char *unused1, unsigned int unused2)
{
CursorPtr curs;
#ifdef NULL_ROOT_CURSOR
CursorMetricRec cm;
#else
FontPtr cursorfont;
int err;
XID fontID;
#endif
#ifdef NULL_ROOT_CURSOR
cm.width = 0;
cm.height = 0;
cm.xhot = 0;
cm.yhot = 0;
curs = AllocCursor(NULL, NULL, &cm, 0, 0, 0, 0, 0, 0);
if (curs == NullCursor)
return NullCursor;
#else
fontID = FakeClientID(0);
err = OpenFont(serverClient, fontID, FontLoadAll | FontOpenSync,
(unsigned)strlen( pfilename), pfilename);
(unsigned)strlen(defaultCursorFont), defaultCursorFont);
if (err != Success)
return NullCursor;
cursorfont = (FontPtr)LookupIDByType(fontID, RT_FONT);
if (!cursorfont)
return NullCursor;
if (AllocGlyphCursor(fontID, glyph, fontID, glyph + 1,
if (AllocGlyphCursor(fontID, 0, fontID, 1,
0, 0, 0, ~0, ~0, ~0, &curs, serverClient) != Success)
return NullCursor;
#endif
if (!AddResource(FakeClientID(0), RT_CURSOR, (pointer)curs))
return NullCursor;

View File

@ -411,22 +411,10 @@ main(int argc, char *argv[], char *envp[])
FatalError("could not open default font '%s'", defaultTextFont);
}
#ifdef NULL_ROOT_CURSOR
cm.width = 0;
cm.height = 0;
cm.xhot = 0;
cm.yhot = 0;
if (!(rootCursor = AllocCursor(NULL, NULL, &cm, 0, 0, 0, 0, 0, 0))) {
FatalError("could not create empty root cursor");
}
AddResource(FakeClientID(0), RT_CURSOR, (pointer)rootCursor);
#else
if (!(rootCursor = CreateRootCursor(defaultCursorFont, 0))) {
if (!(rootCursor = CreateRootCursor(NULL, 0))) {
FatalError("could not open default cursor font '%s'",
defaultCursorFont);
}
#endif
#ifdef DPMSExtension
/* check all screens, looking for DPMS Capabilities */