Fix problems with arrow UI with non-square grid.
[sgt/puzzles] / filling.c
index b9dff73..b05ab49 100644 (file)
--- a/filling.c
+++ b/filling.c
@@ -907,7 +907,7 @@ static void game_changed_state(game_ui *ui, game_state *oldstate,
 #define PREFERRED_TILE_SIZE 32
 #define TILE_SIZE (ds->tilesize)
 #define BORDER (TILE_SIZE / 2)
-#define BORDER_WIDTH (TILE_SIZE / 32)
+#define BORDER_WIDTH (max(TILE_SIZE / 32, 1))
 
 struct game_drawstate {
     struct game_params params;
@@ -1389,7 +1389,8 @@ static void game_redraw(drawing *dr, game_drawstate *ds, game_state *oldstate,
          * should start by drawing a big background-colour rectangle
          * covering the whole window.
          */
-        draw_rect(dr, 0, 0, 10*ds->tilesize, 10*ds->tilesize, COL_BACKGROUND);
+        draw_rect(dr, 0, 0, w*TILE_SIZE + 2*BORDER, h*TILE_SIZE + 2*BORDER,
+                  COL_BACKGROUND);
 
        /*
         * Smaller black rectangle which is the main grid.
@@ -1399,6 +1400,8 @@ static void game_redraw(drawing *dr, game_drawstate *ds, game_state *oldstate,
                  h*TILE_SIZE + 2*BORDER_WIDTH + 1,
                  COL_GRID);
 
+        draw_update(dr, 0, 0, w*TILE_SIZE + 2*BORDER, h*TILE_SIZE + 2*BORDER);
+
         ds->started = TRUE;
     }