diff options
author | marha <marha@users.sourceforge.net> | 2010-02-15 07:35:00 +0000 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2010-02-15 07:35:00 +0000 |
commit | 6f0a8e51f20073ea01ac5dae8e5c4d49076fc65e (patch) | |
tree | 3b27eed7119f18ccb58148cab10cd44dbc8b3ed7 /xorg-server/Xi | |
parent | bdebed13fbe3b1064f9bca04b34643b2587b5304 (diff) | |
download | vcxsrv-6f0a8e51f20073ea01ac5dae8e5c4d49076fc65e.tar.gz vcxsrv-6f0a8e51f20073ea01ac5dae8e5c4d49076fc65e.tar.bz2 vcxsrv-6f0a8e51f20073ea01ac5dae8e5c4d49076fc65e.zip |
Git update 15/2/2010
Diffstat (limited to 'xorg-server/Xi')
-rw-r--r-- | xorg-server/Xi/exevents.c | 20 |
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. |