Added workaround for when XTest is unaware of Xinerama. When that's

true, faking a mouse motion outside screen 0 is clamped onto screen 0.
When the workaround is enabled, we use XWarpPointer() instead of an
XTest fake motion.  This isn't perfect but the only real fix requires
patching XTest.
This commit is contained in:
crs
2003-05-17 13:44:24 +00:00
parent 92ff58a5af
commit 51919a50e6
4 changed files with 68 additions and 5 deletions

View File

@@ -643,6 +643,9 @@ CConfig::getOptionName(OptionID id)
if (id == kOptionScreenSaverSync) {
return "screenSaverSync";
}
if (id == kOptionXTestXineramaUnaware) {
return "xtestIsXineramaUnaware";
}
return NULL;
}
@@ -651,7 +654,8 @@ CConfig::getOptionValue(OptionID id, OptionValue value)
{
if (id == kOptionHalfDuplexCapsLock ||
id == kOptionHalfDuplexNumLock ||
id == kOptionScreenSaverSync) {
id == kOptionScreenSaverSync ||
id == kOptionXTestXineramaUnaware) {
return (value != 0) ? "true" : "false";
}
if (id == kOptionModifierMapForShift ||
@@ -883,6 +887,10 @@ CConfig::readSectionScreens(std::istream& s)
addOption(screen, kOptionModifierMapForSuper,
parseModifierKey(value));
}
else if (name == "xtestIsXineramaUnaware") {
addOption(screen, kOptionXTestXineramaUnaware,
parseBoolean(value));
}
else {
// unknown argument
throw XConfigRead("unknown argument");