Browse Source

Fixes button flashing when releasing mousebutton outside

fossegutten 5 years ago
parent
commit
b728d3bd18
1 changed files with 9 additions and 1 deletions
  1. 9 1
      scene/gui/base_button.cpp

+ 9 - 1
scene/gui/base_button.cpp

@@ -171,9 +171,17 @@ void BaseButton::on_action_event(Ref<InputEvent> p_event) {
 		}
 	}
 
-	if (!p_event->is_pressed()) { // pressed state should be correct with button_up signal
+	if (!p_event->is_pressed()) {
+		Ref<InputEventMouseButton> mouse_button = p_event;
+		if (mouse_button.is_valid()) {
+			if (!has_point(mouse_button->get_position())) {
+				status.hovering = false;
+			}
+		}
+		// pressed state should be correct with button_up signal
 		emit_signal("button_up");
 		status.press_attempt = false;
+		status.pressing_inside = false;
 	}
 
 	update();