aboutsummaryrefslogtreecommitdiff
path: root/xorg-server/Xi/exevents.c
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2010-02-15 08:14:29 +0000
committermarha <marha@users.sourceforge.net>2010-02-15 08:14:29 +0000
commitb40e949511ca8c00cd7d13c622b5247145d44ab3 (patch)
treece21480d852a4748ad12a56f3579acf1cbc09f41 /xorg-server/Xi/exevents.c
parentfb89fb367b0defb8016ac97af590a6f5873c217f (diff)
parent6f0a8e51f20073ea01ac5dae8e5c4d49076fc65e (diff)
downloadvcxsrv-b40e949511ca8c00cd7d13c622b5247145d44ab3.tar.gz
vcxsrv-b40e949511ca8c00cd7d13c622b5247145d44ab3.tar.bz2
vcxsrv-b40e949511ca8c00cd7d13c622b5247145d44ab3.zip
svn merge ^/branches/released .
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 140a353cc..4aae7d6c5 100644
--- a/xorg-server/Xi/exevents.c
+++ b/xorg-server/Xi/exevents.c
@@ -446,6 +446,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.