summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2020-06-25 11:22:08 +0200
committerGitHub <noreply@github.com>2020-06-25 11:22:08 +0200
commit75c91707a4a8b3844746c3cf21a8a767c16da79d (patch)
tree07dbd3137df21f2fad611be06ebc921af5011a6d
parentce5de2a3f49f152b799fe2a00cba4c6bd1b2e28c (diff)
parent031165b345002eef3b2451d944fe286b12915850 (diff)
Merge pull request #39482 from asmaloney/fix-scrollwheel-zoom-macos
[macOS] Control key + scroll wheel should zoom not pan
-rw-r--r--editor/plugins/canvas_item_editor_plugin.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/editor/plugins/canvas_item_editor_plugin.cpp b/editor/plugins/canvas_item_editor_plugin.cpp
index bf698a5ceb..e35cbfcfb0 100644
--- a/editor/plugins/canvas_item_editor_plugin.cpp
+++ b/editor/plugins/canvas_item_editor_plugin.cpp
@@ -1326,6 +1326,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;