fa96951
--- control-center-2.15.92/libkbdraw/keyboard-drawing.c.primary	2006-08-24 22:04:09.000000000 -0400
fa96951
+++ control-center-2.15.92/libkbdraw/keyboard-drawing.c	2006-08-24 22:07:38.000000000 -0400
fa96951
@@ -719,9 +719,22 @@
fa96951
   printf ("outlines: %p(%d)\n", shape->outlines, shape->num_outlines);
fa96951
 #endif
fa96951
 
fa96951
-  for (i = 0; i < 1 /* shape->num_outlines */ ; i++)
fa96951
-    draw_outline (drawing, shape->outlines + i, color, key->angle,
fa96951
-                  key->origin_x, key->origin_y);
fa96951
+  /* draw the primary outline */
fa96951
+  draw_outline (drawing, shape->primary ? shape->primary : shape->outlines, 
fa96951
+		color, key->angle, key->origin_x, key->origin_y);
fa96951
+#if 0
fa96951
+  /* don't draw other outlines for now, since
fa96951
+   * the text placement does not take them into account 
fa96951
+   */
fa96951
+  for (i = 0; i < shape->num_outlines; i++)
fa96951
+    {
fa96951
+      if (shape->outlines + i == shape->approx ||
fa96951
+	  shape->outlines + i == shape->primary)
fa96951
+	continue;
fa96951
+      draw_outline (drawing, shape->outlines + i, NULL, 
fa96951
+		    key->angle, key->origin_x, key->origin_y);
fa96951
+    }
fa96951
+#endif
fa96951
 
fa96951
   draw_key_label (drawing, key->keycode, key->angle, key->origin_x,
fa96951
                   key->origin_y, shape->bounds.x2, shape->bounds.y2);
fa96951
@@ -850,10 +863,22 @@
fa96951
   shape = drawing->xkb->geom->shapes + shape_doodad->shape_ndx;
fa96951
   color = drawing->colors + shape_doodad->color_ndx;
fa96951
 
fa96951
+  /* draw the primary outline filled */
fa96951
+  draw_outline (drawing, shape->primary ? shape->primary : shape->outlines, 
fa96951
+		color, doodad->angle,
fa96951
+		doodad->origin_x + shape_doodad->left,
fa96951
+		doodad->origin_y + shape_doodad->top);
fa96951
+
fa96951
+  /* stroke the other outlines */
fa96951
   for (i = 0; i < shape->num_outlines; i++)
fa96951
-    draw_outline (drawing, shape->outlines + i, color, doodad->angle,
fa96951
-                  doodad->origin_x + shape_doodad->left,
fa96951
-                  doodad->origin_y + shape_doodad->top);
fa96951
+    {
fa96951
+      if (shape->outlines + i == shape->approx ||
fa96951
+	  shape->outlines + i == shape->primary) 
fa96951
+	continue;
fa96951
+      draw_outline (drawing, shape->outlines + i, NULL, doodad->angle,
fa96951
+		    doodad->origin_x + shape_doodad->left,
fa96951
+		    doodad->origin_y + shape_doodad->top);
fa96951
+    }
fa96951
 }
fa96951
 
fa96951
 static void