mirror of
https://github.com/debauchee/barrier.git
synced 2026-02-12 22:55:53 +08:00
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:
@@ -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");
|
||||
|
||||
Reference in New Issue
Block a user