xserver: Branch 'master'
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Sun Apr 12 23:10:05 UTC 2020
hw/xfree86/common/xf86Xinput.c | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)
New commits:
commit 4f95d87d66b6a6e11aa8616c9242e0907ffee66b
Author: Michael Stapelberg <stapelberg at google.com>
Date: Thu Mar 26 21:53:58 2020 +0100
Xorg: honor AutoRepeat option
This option was implemented before the drivers were split in ≈2006,
and e.g. XWin still supports it.
With this commit, Xorg regains support, so that the following configuration can
be used to set the repeat rate for all keyboard devices without having to modify
Xorg command-line flags or having to automate xset(1):
Section "InputClass"
Identifier "system-keyboard"
MatchIsKeyboard "on"
Option "XkbLayout" "de"
Option "XkbVariant" "neo"
Option "AutoRepeat" "250 30"
EndSection
Signed-off-by: Michael Stapelberg <stapelberg at google.com>
diff --git a/hw/xfree86/common/xf86Xinput.c b/hw/xfree86/common/xf86Xinput.c
index 07e52bcf7..3cc90c4e9 100644
--- a/hw/xfree86/common/xf86Xinput.c
+++ b/hw/xfree86/common/xf86Xinput.c
@@ -323,6 +323,33 @@ ApplyTransformationMatrix(DeviceIntPtr dev)
PropModeReplace, 9, matrix, FALSE);
}
+static void
+ApplyAutoRepeat(DeviceIntPtr dev)
+{
+ InputInfoPtr pInfo = (InputInfoPtr) dev->public.devicePrivate;
+ XkbSrvInfoPtr xkbi;
+ char *repeatStr;
+ long delay, rate;
+
+ if (!dev->key)
+ return;
+
+ xkbi = dev->key->xkbInfo;
+
+ repeatStr = xf86SetStrOption(pInfo->options, "AutoRepeat", NULL);
+ if (!repeatStr)
+ return;
+
+ if (sscanf(repeatStr, "%ld %ld", &delay, &rate) != 2) {
+ xf86Msg(X_ERROR, "\"%s\" is not a valid AutoRepeat value\n", repeatStr);
+ return;
+ }
+
+ xf86Msg(X_CONFIG, "AutoRepeat: %ld %ld\n", delay, rate);
+ xkbi->desc->ctrls->repeat_delay = delay;
+ xkbi->desc->ctrls->repeat_interval = rate;
+}
+
/***********************************************************************
*
* xf86ProcessCommonOptions --
@@ -821,6 +848,7 @@ xf86InputDevicePostInit(DeviceIntPtr dev)
{
ApplyAccelerationSettings(dev);
ApplyTransformationMatrix(dev);
+ ApplyAutoRepeat(dev);
return Success;
}
More information about the xorg-commit
mailing list