summaryrefslogtreecommitdiffstats
path: root/editor/plugins/canvas_item_editor_plugin.cpp
diff options
context:
space:
mode:
authorBojidar Marinov <bojidar.marinov.bg@gmail.com>2019-07-28 17:00:05 +0300
committerBojidar Marinov <bojidar.marinov.bg@gmail.com>2019-07-28 17:00:05 +0300
commit68b5f101c7274d9e57dde4f779e71d927e6664b2 (patch)
treec1dbbb08e01541019e87f139cb1423b501be7ff7 /editor/plugins/canvas_item_editor_plugin.cpp
parent331a703f5d2b1b47c4b8312971c44ed2faae505e (diff)
downloadredot-engine-68b5f101c7274d9e57dde4f779e71d927e6664b2.tar.gz
Make it so that 2D viewport does not pan while editing tilemaps
Fixes #30875
Diffstat (limited to 'editor/plugins/canvas_item_editor_plugin.cpp')
-rw-r--r--editor/plugins/canvas_item_editor_plugin.cpp10
1 files changed, 5 insertions, 5 deletions
diff --git a/editor/plugins/canvas_item_editor_plugin.cpp b/editor/plugins/canvas_item_editor_plugin.cpp
index 19199f37ef..92dc3e7f0d 100644
--- a/editor/plugins/canvas_item_editor_plugin.cpp
+++ b/editor/plugins/canvas_item_editor_plugin.cpp
@@ -1058,9 +1058,9 @@ bool CanvasItemEditor::_gui_input_rulers_and_guides(const Ref<InputEvent> &p_eve
return false;
}
-bool CanvasItemEditor::_gui_input_zoom_or_pan(const Ref<InputEvent> &p_event) {
+bool CanvasItemEditor::_gui_input_zoom_or_pan(const Ref<InputEvent> &p_event, bool p_already_accepted) {
Ref<InputEventMouseButton> b = p_event;
- if (b.is_valid()) {
+ if (b.is_valid() && !p_already_accepted) {
bool pan_on_scroll = bool(EditorSettings::get_singleton()->get("editors/2d/scroll_to_pan")) && !b->get_control();
if (b->is_pressed() && b->get_button_index() == BUTTON_WHEEL_DOWN) {
@@ -1162,14 +1162,14 @@ bool CanvasItemEditor::_gui_input_zoom_or_pan(const Ref<InputEvent> &p_event) {
}
Ref<InputEventMagnifyGesture> magnify_gesture = p_event;
- if (magnify_gesture.is_valid()) {
+ if (magnify_gesture.is_valid() && !p_already_accepted) {
// Zoom gesture
_zoom_on_position(zoom * magnify_gesture->get_factor(), magnify_gesture->get_position());
return true;
}
Ref<InputEventPanGesture> pan_gesture = p_event;
- if (pan_gesture.is_valid()) {
+ if (pan_gesture.is_valid() && !p_already_accepted) {
// Pan gesture
const Vector2 delta = (int(EditorSettings::get_singleton()->get("editors/2d/pan_speed")) / zoom) * pan_gesture->get_delta();
view_offset.x += delta.x;
@@ -2268,7 +2268,7 @@ void CanvasItemEditor::_gui_input_viewport(const Ref<InputEvent> &p_event) {
}
}
- accepted = (_gui_input_zoom_or_pan(p_event) || accepted);
+ accepted = (_gui_input_zoom_or_pan(p_event, accepted) || accepted);
if (accepted)
accept_event();