Explorar o código

Cleanup in undo in TextEdit and LineEdit

Sofox hai 1 ano
pai
achega
a1a5c87f9e
Modificáronse 2 ficheiros con 6 adicións e 10 borrados
  1. 5 9
      scene/gui/line_edit.cpp
  2. 1 1
      scene/gui/text_edit.cpp

+ 5 - 9
scene/gui/line_edit.cpp

@@ -1208,13 +1208,12 @@ void LineEdit::undo() {
 		return;
 	}
 
+	if (!has_undo()) {
+		return;
+	}
+
 	if (undo_stack_pos == nullptr) {
-		if (undo_stack.size() <= 1) {
-			return;
-		}
 		undo_stack_pos = undo_stack.back();
-	} else if (undo_stack_pos == undo_stack.front()) {
-		return;
 	}
 
 	deselect();
@@ -1234,10 +1233,7 @@ void LineEdit::redo() {
 		return;
 	}
 
-	if (undo_stack_pos == nullptr) {
-		return;
-	}
-	if (undo_stack_pos == undo_stack.back()) {
+	if (!has_redo()) {
 		return;
 	}
 

+ 1 - 1
scene/gui/text_edit.cpp

@@ -4024,7 +4024,7 @@ void TextEdit::redo() {
 	}
 	_push_current_op();
 
-	if (undo_stack_pos == nullptr) {
+	if (!has_redo()) {
 		return; // Nothing to do.
 	}