summaryrefslogtreecommitdiff
path: root/xkb/ddxCtrls.c
diff options
context:
space:
mode:
authorKaleb Keithley <kaleb@freedesktop.org>2003-11-14 16:49:22 +0000
committerKaleb Keithley <kaleb@freedesktop.org>2003-11-14 16:49:22 +0000
commitd568221710959cf7d783e6ff0fb80fb43a231124 (patch)
tree8d6f039393294c6ffac8533639afdebe5d68bfc1 /xkb/ddxCtrls.c
parent9508a382f8a9f241dab097d921b6d290c1c3a776 (diff)
XFree86 4.3.0.1
Diffstat (limited to 'xkb/ddxCtrls.c')
-rw-r--r--xkb/ddxCtrls.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/xkb/ddxCtrls.c b/xkb/ddxCtrls.c
index da599fbf2..4dfb03df2 100644
--- a/xkb/ddxCtrls.c
+++ b/xkb/ddxCtrls.c
@@ -24,6 +24,7 @@ OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
THE USE OR PERFORMANCE OF THIS SOFTWARE.
********************************************************/
+/* $XFree86: xc/programs/Xserver/xkb/ddxCtrls.c,v 1.3 2001/01/17 22:37:14 dawes Exp $ */
#include <stdio.h>
#define NEED_EVENTS 1
@@ -104,7 +105,8 @@ XkbDDXChangeControls(dev,old,new)
XkbControlsPtr new;
#endif
{
-unsigned changed;
+unsigned changed, i;
+unsigned char *rep_old, *rep_new, *rep_fb;
changed= new->enabled_ctrls^old->enabled_ctrls;
#ifdef NOTDEF
@@ -124,6 +126,16 @@ unsigned changed;
}
}
#endif
+ for (rep_old = old->per_key_repeat,
+ rep_new = new->per_key_repeat,
+ rep_fb = dev->kbdfeed->ctrl.autoRepeats,
+ i = 0; i < XkbPerKeyBitArraySize; i++) {
+ if (rep_old[i] != rep_new[i]) {
+ rep_fb[i] = rep_new[i];
+ changed &= XkbPerKeyRepeatMask;
+ }
+ }
+
if (changed&XkbPerKeyRepeatMask) {
if (dev->kbdfeed->CtrlProc)
(*dev->kbdfeed->CtrlProc)(dev,&dev->kbdfeed->ctrl);