Bläddra i källkod

[3.2][macOS] Control key + scroll wheel should zoom not pan

Fixes godotengine/godot#32520
Andy Maloney 5 år sedan
förälder
incheckning
f4640af9c1
1 ändrade filer med 12 tillägg och 0 borttagningar
  1. 12 0
      editor/plugins/canvas_item_editor_plugin.cpp

+ 12 - 0
editor/plugins/canvas_item_editor_plugin.cpp

@@ -1302,6 +1302,18 @@ bool CanvasItemEditor::_gui_input_zoom_or_pan(const Ref<InputEvent> &p_event, bo
 
 	Ref<InputEventPanGesture> pan_gesture = p_event;
 	if (pan_gesture.is_valid() && !p_already_accepted) {
+		// If control key pressed, then zoom instead of pan
+		if (pan_gesture->get_control()) {
+			const float factor = pan_gesture->get_delta().y;
+			float new_zoom = _get_next_zoom_value(-1);
+
+			if (factor != 1.f) {
+				new_zoom = zoom * ((new_zoom / zoom - 1.f) * factor + 1.f);
+			}
+			_zoom_on_position(new_zoom, pan_gesture->get_position());
+			return true;
+		}
+
 		// Pan gesture
 		const Vector2 delta = (int(EditorSettings::get_singleton()->get("editors/2d/pan_speed")) / zoom) * pan_gesture->get_delta();
 		view_offset.x += delta.x;