Blob Blame History Raw
--- libgnomekbd-2.17.2/libgnomekbd/gkbd-keyboard-drawing.c.primary	2007-01-24 14:41:18.000000000 -0500
+++ libgnomekbd-2.17.2/libgnomekbd/gkbd-keyboard-drawing.c	2007-01-24 14:47:27.000000000 -0500
@@ -677,9 +677,22 @@
 		shape->num_outlines);
 #endif
 
-	for (i = 0; i < 1 /* shape->num_outlines */ ; i++)
-		draw_outline (drawing, shape->outlines + i, color,
-			      key->angle, key->origin_x, key->origin_y);
+        /* draw the primary outline */
+        draw_outline (drawing, shape->primary ? shape->primary : shape->outlines, 
+		      color, key->angle, key->origin_x, key->origin_y);
+#if 0
+        /* don't draw other outlines for now, since
+         * the text placement does not take them into account 
+         */
+        for (i = 0; i < shape->num_outlines; i++)
+          {
+            if (shape->outlines + i == shape->approx ||
+	        shape->outlines + i == shape->primary)
+	      continue;
+            draw_outline (drawing, shape->outlines + i, NULL, 
+		          key->angle, key->origin_x, key->origin_y);
+	  }
+#endif
 
 	draw_key_label (drawing, key->keycode, key->angle, key->origin_x,
 			key->origin_y, shape->bounds.x2, shape->bounds.y2);
@@ -822,11 +835,21 @@
 	shape = drawing->xkb->geom->shapes + shape_doodad->shape_ndx;
 	color = drawing->colors + shape_doodad->color_ndx;
 
-	for (i = 0; i < shape->num_outlines; i++)
-		draw_outline (drawing, shape->outlines + i, color,
-			      doodad->angle,
-			      doodad->origin_x + shape_doodad->left,
-			      doodad->origin_y + shape_doodad->top);
+        /* draw the primary outline filled */
+        draw_outline (drawing, shape->primary ? shape->primary : shape->outlines, 
+ 		      color, doodad->angle,
+                      doodad->origin_x + shape_doodad->left,
+		      doodad->origin_y + shape_doodad->top);
+
+        /* stroke the other outlines */
+	for (i = 0; i < shape->num_outlines; i++) {
+                if (shape->outlines + i == shape->approx ||
+	            shape->outlines + i == shape->primary) 
+	              continue;
+                draw_outline (drawing, shape->outlines + i, NULL, doodad->angle,
+		              doodad->origin_x + shape_doodad->left,
+		              doodad->origin_y + shape_doodad->top);
+        }
 }
 
 static void