ref: ca96ca1ac9784e09193c3e9cdc8b9f5af017ce5a
parent: bc64fc84812903a887b6134b69b317c8b385c323
author: Simon Tatham <[email protected]>
date: Sun Feb 25 10:57:35 EST 2007
Hardwiring the grid line width to 1 is really bad for printing. Use a slightly more conventional method of drawing the grid lines, and thereby fix printing. [originally from svn r7335]
--- a/filling.c
+++ b/filling.c
@@ -1122,18 +1122,32 @@
assert(ds);
/*
+ * Clip to the grid square.
+ */
+ clip(dr, BORDER + x*TILE_SIZE, BORDER + y*TILE_SIZE,
+ TILE_SIZE, TILE_SIZE);
+
+ /*
* Clear the square.
*/
draw_rect(dr,
- BORDER + x*TILE_SIZE + 1,
- BORDER + y*TILE_SIZE + 1,
- TILE_SIZE - 1,
- TILE_SIZE - 1,
+ BORDER + x*TILE_SIZE,
+ BORDER + y*TILE_SIZE,
+ TILE_SIZE,
+ TILE_SIZE,
(flags & CURSOR_BG ? COL_HIGHLIGHT :
flags & ERROR_BG ? COL_ERROR :
flags & CORRECT_BG ? COL_CORRECT : COL_BACKGROUND));
/*
+ * Draw the grid lines.
+ */
+ draw_line(dr, BORDER + x*TILE_SIZE, BORDER + y*TILE_SIZE,
+ BORDER + (x+1)*TILE_SIZE, BORDER + y*TILE_SIZE, COL_GRID);
+ draw_line(dr, BORDER + x*TILE_SIZE, BORDER + y*TILE_SIZE,
+ BORDER + x*TILE_SIZE, BORDER + (y+1)*TILE_SIZE, COL_GRID);
+
+ /*
* Draw the number.
*/
if (n) {
@@ -1209,12 +1223,14 @@
BORDER_WIDTH,
BORDER_WIDTH,
COL_GRID);
-
+
+ unclip(dr);
+
draw_update(dr,
- BORDER + x*TILE_SIZE - 1,
- BORDER + y*TILE_SIZE - 1,
- TILE_SIZE + 3,
- TILE_SIZE + 3);
+ BORDER + x*TILE_SIZE,
+ BORDER + y*TILE_SIZE,
+ TILE_SIZE,
+ TILE_SIZE);
}
static void draw_grid(drawing *dr, game_drawstate *ds, game_state *state,
@@ -1463,6 +1479,7 @@
/*
* Draw grid.
*/
+ print_line_width(dr, TILE_SIZE / 64);
draw_grid(dr, ds, state, NULL, FALSE, borders, FALSE);
/*