Remove a comment suggesting use of localStorage for prefs
Untangle: make snapping grid invariant under window resize
Flood: fix interpret_move() return value for CURSOR_SELECT2
Flood: correctly handle clicks that only hide cursor
Distinguish MOVE_UNUSED from MOVE_NO_EFFECT in Flood
Distinguish MOVE_UNUSED from MOVE_NO_EFFECT in Unruly
Unruly: correctly handle clicks that only hide cursor
Distinguish MOVE_UNUSED from MOVE_NO_EFFECT in Untangle
Add user preference for Singles' show_black_nums
Unruly: use new move_cursor() features
Unequal: use new move_cursor() features for normal movement
Twiddle: use move_cursor() for cursor movement
Towers: use new move_cursor() features
Tents: use new move_cursor() features
Solo: use new move_cursor() features
Slant: use new move_cursor() features
Singles: use new move_cursor() features
Signpost: use new move_cursor() features
Rectangles: use new move_cursor() features
Pattern: use new move_cursor() features
Palisade: use new move_cursor() features
Mosaic: use new move_cursor() features
Mosaic: remove some unused structure members
Mines: use new move_cursor() features
Magnets: use new move_cursor() features
Keen: use new move_cursor() features
Galaxies: use new move_cursor() features
Flip: use move_cursor() for cursor movement
Flood: use move_cursor() for cursor movement
Group: make keyboard play work again.
Keen, Solo, Towers, Undead, Unequal, Group: new UI preference.
Distinguish MOVE_UNUSED from MOVE_NO_EFFECT in Light Up
Light Up: use new move_cursor() features
Dominosa: use new move_cursor() features
Use move_cursor() for cursor movement in Same Game
Appropriately generate MOVE_NO_EFFECT from '\b' in Guess
Use move_cursor() for cursor movement in Guess
move_cursor(): handle visible flag; return useful value
Guess: define constants for flags OR'ed into peg colours
Guess: move hold marker upward by two pixels
Pearl: re-use a single grid structure when generating
Same Game: level-triggered keyboard cursor hiding
Distinguish MOVE_UNUSED from MOVE_NO_EFFECT in Same Game
Same Game: don't hide keyboard cursor on unrecognised keys
Same Game: scale TILE_GAP with tilesize
Flood: don't draw zero-width tile separators
Same Game: more efficient tile_redraw
js: keep colour strings in JavaScript rather than in C
midend_get_prefs: Don't free memory that we just copied elsewhere.
Use the standard game_mkhighlight in Same Game
Same Game: darken light colours to make keyboard cursor visible
Refactor the new icon installation code.
Install the icons to the right location on Linux
Generate more common icon sizes
grid_edge_bydots_cmpfn: remove dangerous pointer comparison.
osx.m: avoid division by zero in startConfigureSheet.
grid.c: new and improved Penrose tiling generator.
grid.c: add dot coordinates to debugging dumps.
grid.c: allocate face/edge/dot arrays incrementally.
Move mul_root3 out into misc.c and generalise it.
js: Copy-to-clipboard support
Add user preference for Bridges' "G" key (show_hints)
Bridges: remove a comment for a deleted line of code
Fix control-character generation fix
Distinguish MOVE_UNUSED from MOVE_NO_EFFECT in Galaxies
Pearl: slightly better handling of clicks outside the grid
Keen: fix another misuse of dsf_canonify.
Reduce the set of keys from which we generate control characters
Distinguish MOVE_UNUSED from MOVE_NO_EFFECT in Flip
Distinguish MOVE_UNUSED from MOVE_NO_EFFECT in Filling
Distinguish MOVE_UNUSED from MOVE_NO_EFFECT in Dominosa
Distinguish MOVE_UNUSED from MOVE_NO_EFFECT in Pegs
Blackbox: correct FROMDRAW() macro for C division semantics
spectre-test: support raster-mode tiling generation.
spectre_adjacent: optionally report dst_edge.
spectre.c: expose a couple more internal functions.
Spectre tiling: add a comment with some reference URLs.
Loopy / grid.c: support the new Spectre monotiling.
Fix some unused-variable warnings.
Add a 'core' library alongside 'common'.
hat-test: support SVG output.
Distinguish MOVE_UNUSED from MOVE_NO_EFFECT in Pearl
Distinguish MOVE_UNUSED from MOVE_NO_EFFECT in Cube
Distinguish MOVE_UNUSED from MOVE_NO_EFFECT in Fifteen
Distinguish MOVE_UNUSED from MOVE_NO_EFFECT in Bridges
Distinguish MOVE_UNUSED from MOVE_NO_EFFECT in Slant
Expose the NO_EFFECT/UNUSED distinction through midend_process_key()
Distinguish MOVE_UNUSED from MOVE_NO_EFFECT in Mines
Add MOVE_NO_EFFECT and MOVE_UNUSED return values from interpret_move()
Rename UI_UPDATE as MOVE_UI_UPDATE
Update a comment in Mines to reflect that we have user prefs now
Fix a few minor memory leaks.
Add preferences for existing UI style controls
js: pass preferences file from JS to C on the heap, not the stack
js: handle exceptions when accessing localStorage
Emscripten: fix edge case of js_canvas_find_font_midpoint.
Loopy: fix redraw issue due to enlarged dots.
Isolate icons build from the running user's preferences.
Windows: reorganise menu ids.
midend_apply_prefs: apply prefs to the right ui.