aboutsummaryrefslogtreecommitdiff
path: root/xorg-server/Xi/exevents.c
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2010-02-15 07:35:00 +0000
committermarha <marha@users.sourceforge.net>2010-02-15 07:35:00 +0000
commit6f0a8e51f20073ea01ac5dae8e5c4d49076fc65e (patch)
tree3b27eed7119f18ccb58148cab10cd44dbc8b3ed7 /xorg-server/Xi/exevents.c
parentbdebed13fbe3b1064f9bca04b34643b2587b5304 (diff)
downloadvcxsrv-6f0a8e51f20073ea01ac5dae8e5c4d49076fc65e.tar.gz
vcxsrv-6f0a8e51f20073ea01ac5dae8e5c4d49076fc65e.tar.bz2
vcxsrv-6f0a8e51f20073ea01ac5dae8e5c4d49076fc65e.zip
Git update 15/2/2010
Diffstat (limited to 'xorg-server/Xi/exevents.c')
-rw-r--r--xorg-server/Xi/exevents.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/xorg-server/Xi/exevents.c b/xorg-server/Xi/exevents.c
index 5f8e1fac5..7c105eb94 100644
--- a/xorg-server/Xi/exevents.c
+++ b/xorg-server/Xi/exevents.c
@@ -444,6 +444,26 @@ DeepCopyKeyboardClasses(DeviceIntPtr from, DeviceIntPtr to)
to->key = NULL;
}
+ /* If a SrvLedInfoPtr's flags are XkbSLI_IsDefault, the names and maps
+ * pointer point into the xkbInfo->desc struct. XkbCopySrvLedInfo
+ * didn't update the pointers so we need to do it manually here.
+ */
+ if (to->kbdfeed)
+ {
+ KbdFeedbackPtr k;
+
+ for (k = to->kbdfeed; k; k = k->next)
+ {
+ if (!k->xkb_sli)
+ continue;
+ if (k->xkb_sli->flags & XkbSLI_IsDefault)
+ {
+ k->xkb_sli->names = to->key->xkbInfo->desc->names->indicators;
+ k->xkb_sli->maps = to->key->xkbInfo->desc->indicators->maps;
+ }
+ }
+ }
+
/* We can't just copy over the focus class. When an app sets the focus,
* it'll do so on the master device. Copying the SDs focus means losing
* the focus.