소스 검색

It is now possible to cancel on 2D polygon editor. RMB (previously close) and ESC will cancel polygon. Closes #15474

Juan Linietsky 7 년 전
부모
커밋
7f347cc31a
2개의 변경된 파일16개의 추가작업 그리고 1개의 파일을 삭제
  1. 15 1
      editor/plugins/abstract_polygon_2d_editor.cpp
  2. 1 0
      editor/plugins/abstract_polygon_2d_editor.h

+ 15 - 1
editor/plugins/abstract_polygon_2d_editor.cpp

@@ -229,6 +229,18 @@ void AbstractPolygon2DEditor::_wip_changed() {
 	}
 }
 
+void AbstractPolygon2DEditor::_wip_cancel() {
+
+	wip.clear();
+	wip_active = false;
+
+	edited_point = PosVertex();
+	hover_point = Vertex();
+	selected_point = Vertex();
+
+	canvas_item_editor->update_viewport();
+}
+
 void AbstractPolygon2DEditor::_wip_close() {
 	if (!wip_active)
 		return;
@@ -429,7 +441,7 @@ bool AbstractPolygon2DEditor::forward_gui_input(const Ref<InputEvent> &p_event)
 					}
 				}
 			} else if (mb->get_button_index() == BUTTON_RIGHT && mb->is_pressed() && wip_active) {
-				_wip_close();
+				_wip_cancel();
 			}
 		}
 	}
@@ -510,6 +522,8 @@ bool AbstractPolygon2DEditor::forward_gui_input(const Ref<InputEvent> &p_event)
 		} else if (wip_active && k->get_scancode() == KEY_ENTER) {
 
 			_wip_close();
+		} else if (wip_active && k->get_scancode() == KEY_ESCAPE) {
+			_wip_cancel();
 		}
 	}
 

+ 1 - 0
editor/plugins/abstract_polygon_2d_editor.h

@@ -103,6 +103,7 @@ protected:
 	virtual void _menu_option(int p_option);
 	void _wip_changed();
 	void _wip_close();
+	void _wip_cancel();
 	bool _delete_point(const Vector2 &p_gpoint);
 
 	void _notification(int p_what);