diff --git a/fluid/undo.cxx b/fluid/undo.cxx index 4c66ac2ea31a32df94568544c4b7b783ebd00370..1ffb41e8a0aec604f7d3ca5cb0d7a780cd6f6502 100644 --- a/fluid/undo.cxx +++ b/fluid/undo.cxx @@ -77,6 +77,7 @@ static char *undo_filename(int level) { // Redo menu callback void redo_cb(Fl_Widget *, void *) { int undo_item = main_menubar->find_index(undo_cb); + int redo_item = main_menubar->find_index(redo_cb); if (undo_current >= undo_last) return; @@ -93,7 +94,7 @@ void redo_cb(Fl_Widget *, void *) { set_modflag(undo_current != undo_save); // Update undo/redo menu items... - if (undo_current >= undo_last) Main_Menu[undo_item].deactivate(); + if (undo_current >= undo_last) Main_Menu[redo_item].deactivate(); Main_Menu[undo_item].activate(); } @@ -160,6 +161,8 @@ void undo_checkpoint() { // Clear undo buffer void undo_clear() { + int undo_item = main_menubar->find_index(undo_cb); + int redo_item = main_menubar->find_index(redo_cb); // Remove old checkpoint files... for (int i = 0; i <= undo_max; i ++) { fl_unlink(undo_filename(i)); @@ -169,6 +172,10 @@ void undo_clear() { undo_current = undo_last = undo_max = 0; if (modflag) undo_save = -1; else undo_save = 0; + + // Disable the Undo and Redo menu items... + Main_Menu[undo_item].deactivate(); + Main_Menu[redo_item].deactivate(); } // Resume undo checkpoints