Fix 2D Pan Tool

This commit is contained in:
kobewi
2022-01-24 22:19:50 +01:00
parent 33960b3b87
commit 342a31e326
3 changed files with 14 additions and 1 deletions

View File

@@ -81,7 +81,12 @@ bool ViewPanner::gui_input(const Ref<InputEvent> &p_event, Rect2 p_canvas_rect)
return false;
}
if (mb->get_button_index() == MouseButton::MIDDLE || (enable_rmb && mb->get_button_index() == MouseButton::RIGHT) || (!simple_panning_enabled && mb->get_button_index() == MouseButton::LEFT && is_panning())) {
bool is_drag_event = mb->get_button_index() == MouseButton::MIDDLE ||
(enable_rmb && mb->get_button_index() == MouseButton::RIGHT) ||
(!simple_panning_enabled && mb->get_button_index() == MouseButton::LEFT && is_panning()) ||
(force_drag && mb->get_button_index() == MouseButton::LEFT);
if (is_drag_event) {
if (mb->is_pressed()) {
is_dragging = true;
} else {
@@ -166,6 +171,10 @@ bool ViewPanner::is_panning() const {
return is_dragging || pan_key_pressed;
}
void ViewPanner::set_force_drag(bool p_force) {
force_drag = p_force;
}
ViewPanner::ViewPanner() {
Array inputs;
inputs.append(InputEventKey::create_reference(Key::SPACE));