浏览代码

Fixed wrong mouse position after releasing grabber

kobewi 4 年之前
父节点
当前提交
dcf306f72d
共有 1 个文件被更改,包括 2 次插入1 次删除
  1. 2 1
      editor/editor_spin_slider.cpp

+ 2 - 1
editor/editor_spin_slider.cpp

@@ -70,7 +70,6 @@ void EditorSpinSlider::_gui_input(const Ref<InputEvent> &p_event) {
 					grabbing_spinner_dist_cache = 0;
 					pre_grab_value = get_value();
 					grabbing_spinner = false;
-					grabbing_spinner_mouse_pos = Input::get_singleton()->get_mouse_position();
 				}
 			} else {
 				if (grabbing_spinner_attempt) {
@@ -283,6 +282,8 @@ void EditorSpinSlider::_notification(int p_what) {
 			Rect2 grabber_rect = Rect2(ofs + gofs, svofs + 1, grabber_w, 2 * EDSCALE);
 			draw_rect(grabber_rect, c);
 
+			grabbing_spinner_mouse_pos = get_global_position() + grabber_rect.position + grabber_rect.size * 0.5;
+
 			bool display_grabber = (mouse_over_spin || mouse_over_grabber) && !grabbing_spinner && !value_input_popup->is_visible();
 			if (grabber->is_visible() != display_grabber) {
 				if (display_grabber) {