XkbCopyKeymap was mangling doodads and overlays
This commit is contained in:
parent
ab9b0b36ac
commit
b2657ec598
|
@ -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 {
|
||||
|
|
Loading…
Reference in New Issue
Block a user