Enable axis in virtual_input device only when needed

This commit is contained in:
max
2020-12-21 11:47:25 +01:00
parent ffcfb3da82
commit 1f02882971
3 changed files with 42 additions and 15 deletions

View File

@@ -104,9 +104,11 @@ AxisGesture::Config::Config(Device *device, libconfig::Setting &setting) :
auto& axis = setting.lookup("axis");
if(axis.isNumber()) {
_axis = axis;
virtual_input->registerAxis(_axis);
} else if(axis.getType() == libconfig::Setting::TypeString) {
try {
_axis = virtual_input->toAxisCode(axis);
virtual_input->registerAxis(_axis);
} catch(InputDevice::InvalidEventCode& e) {
logPrintf(WARN, "Line %d: Invalid axis %s, skipping."
, axis.getSourceLine(), axis.c_str());
@@ -138,8 +140,11 @@ AxisGesture::Config::Config(Device *device, libconfig::Setting &setting) :
// Ignore
}
if(InputDevice::getLowResAxis(_axis) != -1)
int low_res_axis = InputDevice::getLowResAxis(_axis);
if(low_res_axis != -1) {
_multiplier *= 120;
virtual_input->registerAxis(low_res_axis);
}
}
unsigned int AxisGesture::Config::axis() const
@@ -168,4 +173,4 @@ void AxisGesture::Config::setHiresMultiplier(double multiplier)
}
_hires_multiplier = multiplier;
}
}