浏览代码

Merge pull request #39395 from asmaloney/fix-macos-scrollwheel-zoom

[3.2][macOS] Control key + scroll wheel should zoom not pan
Rémi Verschelde 5 年之前
父节点
当前提交
76fa1724b3
共有 1 个文件被更改,包括 12 次插入0 次删除
  1. 12 0
      editor/plugins/canvas_item_editor_plugin.cpp

+ 12 - 0
editor/plugins/canvas_item_editor_plugin.cpp

@@ -1303,6 +1303,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;