diff options
Diffstat (limited to 'draw.c')
-rw-r--r-- | draw.c | 7 |
1 files changed, 7 insertions, 0 deletions
@@ -77,10 +77,13 @@ void get_text(FILE *fc){ int orig_x = x; redraw(); + copy_lines_to_ring(y, y, PRV_STATE); while((c=fgetc(fc))!=EOF && c != 27){ if(c=='\n'){ set_cur(BG); + copy_lines_to_ring(y,y, NEW_STATE); y += 1; + copy_lines_to_ring(y, y, PRV_STATE); x = orig_x; } else { @@ -95,6 +98,8 @@ void get_text(FILE *fc){ status_bar(); show_cursor(); } + if (modified) + copy_lines_to_ring(y, y, NEW_STATE); mode=MOVE; } @@ -245,6 +250,7 @@ update_arrow: show_cursor(); } if (c == 'a' || c == '\n'){ + invalidate_undo(); draw_arrow(orig_x, orig_y, arrow, arrow_len, FIX); modified = 1; } @@ -278,6 +284,7 @@ void erase(FILE *fc){ int orig_x = x, orig_y = y; status_bar(); show_cursor(); + invalidate_undo(); while((c=fgetc(fc))!=EOF && c!=27 && c!= 'x' && c != '\n'){ if (!move_around(c, fc)) continue; check_bound(); |