[PATCH] xkb: Keep action/keysym table size in sync when setting keysyms

Dirk Wallenstein halsmit at t-online.de
Fri Feb 19 10:22:04 PST 2010


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 <halsmit at t-online.de>
---
 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



More information about the xorg-devel mailing list