XkbCopyKeymap: increment shapes and outlines when copying
Remember to increment the source and destination shapes when copying, instead of just endlessly copying the first one.
This commit is contained in:
		
							parent
							
								
									eec1822591
								
							
						
					
					
						commit
						562096a012
					
				| 
						 | 
					@ -1665,7 +1665,7 @@ XkbCopyKeymap(XkbDescPtr src, XkbDescPtr dst, Bool sendNotifies)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            for (i = 0, sshape = src->geom->shapes, dshape = dst->geom->shapes;
 | 
					            for (i = 0, sshape = src->geom->shapes, dshape = dst->geom->shapes;
 | 
				
			||||||
                 i < src->geom->num_shapes;
 | 
					                 i < src->geom->num_shapes;
 | 
				
			||||||
                 i++) {
 | 
					                 i++, sshape++, dshape++) {
 | 
				
			||||||
                if (sshape->num_outlines) {
 | 
					                if (sshape->num_outlines) {
 | 
				
			||||||
                    tmp = xcalloc(sshape->num_outlines, sizeof(XkbOutlineRec));
 | 
					                    tmp = xcalloc(sshape->num_outlines, sizeof(XkbOutlineRec));
 | 
				
			||||||
                    if (!tmp)
 | 
					                    if (!tmp)
 | 
				
			||||||
| 
						 | 
					@ -1676,7 +1676,7 @@ XkbCopyKeymap(XkbDescPtr src, XkbDescPtr dst, Bool sendNotifies)
 | 
				
			||||||
                          soutline = sshape->outlines,
 | 
					                          soutline = sshape->outlines,
 | 
				
			||||||
                          doutline = dshape->outlines;
 | 
					                          doutline = dshape->outlines;
 | 
				
			||||||
                         j < sshape->num_outlines;
 | 
					                         j < sshape->num_outlines;
 | 
				
			||||||
                         j++) {
 | 
					                         j++, soutline++, doutline++) {
 | 
				
			||||||
                        if (soutline->num_points) {
 | 
					                        if (soutline->num_points) {
 | 
				
			||||||
                            tmp = xalloc(soutline->num_points *
 | 
					                            tmp = xalloc(soutline->num_points *
 | 
				
			||||||
                                          sizeof(XkbPointRec));
 | 
					                                          sizeof(XkbPointRec));
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue