X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fundostack.C;h=1bb781022695ec1ba5059c834c236902924a7696;hb=74afbc29ac4ce9d94d53e10342979f2c59f1f193;hp=acc6544f010dd0467b2150b206fd1b38d08a3221;hpb=4c463964715f67d36cc3ecb92f414cb9f7ba720d;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/cinelerra/undostack.C b/cinelerra-5.1/cinelerra/undostack.C index acc6544f..1bb78102 100644 --- a/cinelerra-5.1/cinelerra/undostack.C +++ b/cinelerra-5.1/cinelerra/undostack.C @@ -35,6 +35,23 @@ UndoStack::~UndoStack() { } +UndoStackItem *UndoStack::get_current_undo() +{ + UndoStackItem *item = current; + if( item && (number_of(item) % 2) ) item = item->previous; + if( item && !(number_of(item) % 2) ) item = item->previous; + return item; +} + +UndoStackItem *UndoStack::get_current_redo() +{ + UndoStackItem *item = current ? current : first; + if( item && (number_of(item) % 2) ) item = item->next; + if( item && !(number_of(item) % 2) ) item = item->next; + return item; +} + + UndoStackItem* UndoStack::push() { // current is only 0 if before first undo @@ -76,11 +93,6 @@ UndoStackItem* UndoStack::push() return current; } -void UndoStack::pull() -{ - if(current) current = PREVIOUS; -} - UndoStackItem* UndoStack::pull_next() { // use first entry if none