Browse Source

Fix set_default_cursor_shape always sending motion event

Guilherme Felipe 6 years ago
parent
commit
508761e0cd
2 changed files with 5 additions and 0 deletions
  1. 1 0
      doc/classes/Input.xml
  2. 4 0
      main/input_default.cpp

+ 1 - 0
doc/classes/Input.xml

@@ -318,6 +318,7 @@
 			<description>
 				Sets the default cursor shape to be used in the viewport instead of [constant CURSOR_ARROW].
 				[b]Note:[/b] If you want to change the default cursor shape for [Control]'s nodes, use [member Control.mouse_default_cursor_shape] instead.
+				[b]Note:[/b] This method generates an [InputEventMouseMotion] to update cursor immediately.
 			</description>
 		</method>
 		<method name="set_mouse_mode">

+ 4 - 0
main/input_default.cpp

@@ -629,6 +629,10 @@ Input::CursorShape InputDefault::get_default_cursor_shape() const {
 }
 
 void InputDefault::set_default_cursor_shape(CursorShape p_shape) {
+
+	if (default_shape == p_shape)
+		return;
+
 	default_shape = p_shape;
 	// The default shape is set in Viewport::_gui_input_event. To instantly
 	// see the shape in the viewport we need to trigger a mouse motion event.