hundredrabbits / Orca-c

Live Programming Environment(C Port)
http://wiki.xxiivv.com/orca
MIT License
485 stars 48 forks source link

Undo not working while playing #76

Open ghost opened 3 years ago

ghost commented 3 years ago

I was not able to undo. I looked at the code and changed this:

diff --git a/tui_main.c b/tui_main.c
index d525d05..e671915 100644
--- a/tui_main.c
+++ b/tui_main.c
@@ -1854,10 +1854,7 @@ staticni void ged_input_cmd(Ged *a, Ged_input_cmd ev) {
   case Ged_input_cmd_undo:
     if (undo_history_count(&a->undo_hist) == 0)
       break;
-    if (a->is_playing)
-      undo_history_apply(&a->undo_hist, &a->field, &a->tick_num);
-    else
-      undo_history_pop(&a->undo_hist, &a->field, &a->tick_num);
+    undo_history_pop(&a->undo_hist, &a->field, &a->tick_num);
     ged_cursor_confine(&a->ged_cursor, a->field.height, a->field.width);
     ged_update_internal_geometry(a);
     ged_make_cursor_visible(a);

I am very confused why does undo restore the tick? And why is it disabled while playing?