Revert "dix: Enable core devices in InitCoreDevices already."
I merged the wrong patch. See correct patch at:
http://lists.freedesktop.org/archives/xorg/2008-November/040540.html
Not activating the device before attempting to enable it would leave the
sprite unset, crashing the server when enabling the real devices.
This reverts commit e078901a4e
.
Signed-off-by: Peter Hutterer <peter.hutterer@redhat.com>
This commit is contained in:
parent
416685c295
commit
2b45602e82
|
@ -595,6 +595,8 @@ CorePointerProc(DeviceIntPtr pDev, int what)
|
||||||
* Both devices are not tied to physical devices, but guarantee that there is
|
* Both devices are not tied to physical devices, but guarantee that there is
|
||||||
* always a keyboard and a pointer present and keep the protocol semantics.
|
* always a keyboard and a pointer present and keep the protocol semantics.
|
||||||
*
|
*
|
||||||
|
* The devices are activated but not enabled.
|
||||||
|
*
|
||||||
* Note that the server MUST have two core devices at all times, even if there
|
* Note that the server MUST have two core devices at all times, even if there
|
||||||
* is no physical device connected.
|
* is no physical device connected.
|
||||||
*/
|
*/
|
||||||
|
@ -605,12 +607,6 @@ InitCoreDevices(void)
|
||||||
&inputInfo.pointer,
|
&inputInfo.pointer,
|
||||||
&inputInfo.keyboard) != Success)
|
&inputInfo.keyboard) != Success)
|
||||||
FatalError("Failed to allocate core devices");
|
FatalError("Failed to allocate core devices");
|
||||||
|
|
||||||
if (inputInfo.pointer->inited && inputInfo.pointer->startup)
|
|
||||||
EnableDevice(inputInfo.pointer);
|
|
||||||
if (inputInfo.keyboard->inited && inputInfo.keyboard->startup)
|
|
||||||
EnableDevice(inputInfo.keyboard);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -625,7 +621,7 @@ InitCoreDevices(void)
|
||||||
*
|
*
|
||||||
* @return Success or error code on failure.
|
* @return Success or error code on failure.
|
||||||
*/
|
*/
|
||||||
void
|
int
|
||||||
InitAndStartDevices()
|
InitAndStartDevices()
|
||||||
{
|
{
|
||||||
DeviceIntPtr dev, next;
|
DeviceIntPtr dev, next;
|
||||||
|
@ -636,14 +632,31 @@ InitAndStartDevices()
|
||||||
ActivateDevice(dev);
|
ActivateDevice(dev);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!inputInfo.keyboard) { /* In theory, this cannot happen */
|
||||||
|
ErrorF("[dix] No core keyboard\n");
|
||||||
|
return BadImplementation;
|
||||||
|
}
|
||||||
|
if (!inputInfo.pointer) { /* In theory, this cannot happen */
|
||||||
|
ErrorF("[dix] No core pointer\n");
|
||||||
|
return BadImplementation;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Now enable all devices */
|
||||||
|
if (inputInfo.pointer->inited && inputInfo.pointer->startup)
|
||||||
|
EnableDevice(inputInfo.pointer);
|
||||||
|
if (inputInfo.keyboard->inited && inputInfo.keyboard->startup)
|
||||||
|
EnableDevice(inputInfo.keyboard);
|
||||||
|
|
||||||
/* enable real devices */
|
/* enable real devices */
|
||||||
for (dev = inputInfo.off_devices; dev; dev = next)
|
for (dev = inputInfo.off_devices; dev; dev = next)
|
||||||
{
|
{
|
||||||
DebugF("(dix) enabling device %d\n", dev->id);
|
DebugF("(dix) enabling device %d\n", dev->id);
|
||||||
next = dev->next;
|
next = dev->next;
|
||||||
if (dev->inited && dev->startup)
|
if (dev->inited && dev->startup)
|
||||||
EnableDevice(dev);
|
(void)EnableDevice(dev);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return Success;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -361,7 +361,8 @@ int main(int argc, char *argv[], char *envp[])
|
||||||
|
|
||||||
InitCoreDevices();
|
InitCoreDevices();
|
||||||
InitInput(argc, argv);
|
InitInput(argc, argv);
|
||||||
InitAndStartDevices();
|
if (InitAndStartDevices() != Success)
|
||||||
|
FatalError("failed to initialize core devices");
|
||||||
|
|
||||||
dixSaveScreens(serverClient, SCREEN_SAVER_FORCER, ScreenSaverReset);
|
dixSaveScreens(serverClient, SCREEN_SAVER_FORCER, ScreenSaverReset);
|
||||||
|
|
||||||
|
|
|
@ -233,7 +233,7 @@ extern Bool ActivateDevice(
|
||||||
extern Bool DisableDevice(
|
extern Bool DisableDevice(
|
||||||
DeviceIntPtr /*device*/);
|
DeviceIntPtr /*device*/);
|
||||||
|
|
||||||
extern void InitAndStartDevices(void);
|
extern int InitAndStartDevices(void);
|
||||||
|
|
||||||
extern void CloseDownDevices(void);
|
extern void CloseDownDevices(void);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue