summaryrefslogtreecommitdiff
path: root/editor/plugins/canvas_item_editor_plugin.cpp
diff options
context:
space:
mode:
authorRĂ©mi Verschelde <rverschelde@gmail.com>2017-03-24 22:50:39 +0100
committerGitHub <noreply@github.com>2017-03-24 22:50:39 +0100
commit98baec68809ebf2dc15dbd44822bb945b039ae6b (patch)
treec54bcccdc9391954bc470f7bc0a6c83f1fe004cd /editor/plugins/canvas_item_editor_plugin.cpp
parentca3596b043b2f4c5a4f6858bd6176b7d1cbc931a (diff)
parentf5004b78d0468641cd03619ecfecb42429621a70 (diff)
Merge pull request #8109 from RandomShaper/warped-panning
Implement warped mouse panning for 2D & 3D editors
Diffstat (limited to 'editor/plugins/canvas_item_editor_plugin.cpp')
-rw-r--r--editor/plugins/canvas_item_editor_plugin.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/editor/plugins/canvas_item_editor_plugin.cpp b/editor/plugins/canvas_item_editor_plugin.cpp
index 7b015e484f..7f2daae420 100644
--- a/editor/plugins/canvas_item_editor_plugin.cpp
+++ b/editor/plugins/canvas_item_editor_plugin.cpp
@@ -1471,8 +1471,16 @@ void CanvasItemEditor::_viewport_gui_input(const InputEvent &p_event) {
if (drag == DRAG_NONE) {
if ((m.button_mask & BUTTON_MASK_LEFT && tool == TOOL_PAN) || m.button_mask & BUTTON_MASK_MIDDLE || (m.button_mask & BUTTON_MASK_LEFT && Input::get_singleton()->is_key_pressed(KEY_SPACE))) {
- h_scroll->set_value(h_scroll->get_value() - m.relative_x / zoom);
- v_scroll->set_value(v_scroll->get_value() - m.relative_y / zoom);
+
+ Point2i relative;
+ if (bool(EditorSettings::get_singleton()->get("editors/2d/warped_mouse_panning"))) {
+ relative = Input::get_singleton()->warp_mouse_motion(m, viewport->get_global_rect());
+ } else {
+ relative = Point2i(m.relative_x, m.relative_y);
+ }
+
+ h_scroll->set_value(h_scroll->get_value() - relative.x / zoom);
+ v_scroll->set_value(v_scroll->get_value() - relative.y / zoom);
}
return;