// grid
    draw_grid_on(context);

    // mouse move
    if(do_guides){
        var x = client_to_x(client_x);
        var y = client_to_y(client_y);
        
        // find the nearest equation
        var closest_eq_i = 0;
        var eq0 = solver_1_eq_1;
        var x0 = projected_x(x, y, eq0[0], eq0[1], eq0[2]);
        var y0 = projected_y(x, y, eq0[0], eq0[1], eq0[2]);
        var closest_distance = length_of(x - x0, y - y0);
        for(var i = 1; i < solver_1_eqs; ++i) {
            var eq = eval(