From b2657ec5981122e7cc0bda0d8802aec63cde9014 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Wed, 6 Feb 2008 16:51:57 -0800 Subject: XkbCopyKeymap was mangling doodads and overlays --- xkb/xkbUtils.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'xkb/xkbUtils.c') diff --git a/xkb/xkbUtils.c b/xkb/xkbUtils.c index b3132701d..a3ae655f0 100644 --- a/xkb/xkbUtils.c +++ b/xkb/xkbUtils.c @@ -1796,6 +1796,7 @@ XkbCopyKeymap(XkbDescPtr src, XkbDescPtr dst, Bool sendNotifies) dsection = dst->geom->sections; i < src->geom->num_sections; i++, ssection++, dsection++) { + *dsection = *ssection; if (ssection->num_rows) { tmp = xcalloc(ssection->num_rows, sizeof(XkbRowRec)); if (!tmp) @@ -1830,6 +1831,7 @@ XkbCopyKeymap(XkbDescPtr src, XkbDescPtr dst, Bool sendNotifies) dsection->doodads = NULL; } + dsection->sz_doodads = ssection->num_doodads; for (k = 0, sdoodad = ssection->doodads, ddoodad = dsection->doodads; @@ -1850,8 +1852,9 @@ XkbCopyKeymap(XkbDescPtr src, XkbDescPtr dst, Bool sendNotifies) } ddoodad->any.type = sdoodad->any.type; } - dsection->num_doodads = ssection->num_doodads; - dsection->sz_doodads = ssection->num_doodads; + dsection->overlays = NULL; + dsection->sz_overlays = 0; + dsection->num_overlays = 0; } } else { -- cgit v1.2.3