瀏覽代碼

Merge pull request #53063 from stebulba/3_x_undo_closecurve

Rémi Verschelde 4 年之前
父節點
當前提交
bb60c97d10
共有 1 個文件被更改,包括 8 次插入1 次删除
  1. 8 1
      editor/plugins/path_editor_plugin.cpp

+ 8 - 1
editor/plugins/path_editor_plugin.cpp

@@ -503,7 +503,14 @@ void PathEditorPlugin::_close_curve() {
 	if (c->get_point_count() < 2) {
 		return;
 	}
-	c->add_point(c->get_point_position(0), c->get_point_in(0), c->get_point_out(0));
+	if (c->get_point_position(0) == c->get_point_position(c->get_point_count() - 1)) {
+		return;
+	}
+	UndoRedo *ur = editor->get_undo_redo();
+	ur->create_action(TTR("Close Curve"));
+	ur->add_do_method(c.ptr(), "add_point", c->get_point_position(0), c->get_point_in(0), c->get_point_out(0), -1);
+	ur->add_undo_method(c.ptr(), "remove_point", c->get_point_count());
+	ur->commit_action();
 }
 
 void PathEditorPlugin::_handle_option_pressed(int p_option) {