The size of an action table for a key is determined by the corresponding
XkbSymMapRec. Once group_info (incl. groupsCount) and width are updated
the actual size of the current actions table is lost. Therefore this
will resize the actions table, too, when setting keysyms.

This might be related to bug #25321

Signed-off-by: Dirk Wallenstein <[email protected]>
---
 xkb/xkb.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/xkb/xkb.c b/xkb/xkb.c
index 29052bf..cd49387 100644
--- a/xkb/xkb.c
+++ b/xkb/xkb.c
@@ -2070,6 +2070,9 @@ unsigned          first,last;
        pSyms = (KeySym *)&wire[1];
        if (wire->nSyms>0) {
            newSyms = XkbResizeKeySyms(xkb,i+req->firstKeySym,wire->nSyms);
+           if (XkbKeyHasActions(xkb,i+req->firstKeySym)) {
+               XkbResizeKeyActions(xkb,i+req->firstKeySym,wire->nSyms);
+           }
            for (s=0;s<wire->nSyms;s++) {
                newSyms[s]= pSyms[s];
            }
-- 
1.6.5.3

_______________________________________________
xorg-devel mailing list
[email protected]
http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to