diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2024-07-05 15:07:44 +0200 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2024-07-05 15:07:44 +0200 |
commit | 1704af01b15f16d0566075f1a525cad1829f8fbf (patch) | |
tree | 893dc44377603ec28a49440e28e8005cd9ff3794 /scene/gui/text_edit.cpp | |
parent | 47c471e8efd810b5f40b259b0437aa0619a67bda (diff) | |
parent | fc16465d17143511117a506f63186a1190e09a16 (diff) | |
download | redot-engine-1704af01b15f16d0566075f1a525cad1829f8fbf.tar.gz |
Merge pull request #93959 from kitbdev/fix-drop-on-selection
Fix dropping on selection in script editor
Diffstat (limited to 'scene/gui/text_edit.cpp')
-rw-r--r-- | scene/gui/text_edit.cpp | 30 |
1 files changed, 16 insertions, 14 deletions
diff --git a/scene/gui/text_edit.cpp b/scene/gui/text_edit.cpp index 7b682daa83..9cc59f1def 100644 --- a/scene/gui/text_edit.cpp +++ b/scene/gui/text_edit.cpp @@ -1643,21 +1643,14 @@ void TextEdit::_notification(int p_what) { } break; case NOTIFICATION_DRAG_END: { - if (is_drag_successful()) { - if (selection_drag_attempt) { - // Dropped elsewhere. - if (is_editable() && !Input::get_singleton()->is_key_pressed(Key::CMD_OR_CTRL)) { - delete_selection(); - } else if (deselect_on_focus_loss_enabled) { - deselect(); - } - } - } - if (drag_caret_index >= 0) { - if (drag_caret_index < carets.size()) { - remove_caret(drag_caret_index); + remove_drag_caret(); + if (selection_drag_attempt && is_drag_successful()) { + // Dropped elsewhere. + if (is_editable() && !Input::get_singleton()->is_key_pressed(Key::CMD_OR_CTRL)) { + delete_selection(); + } else if (deselect_on_focus_loss_enabled) { + deselect(); } - drag_caret_index = -1; } selection_drag_attempt = false; drag_action = false; @@ -4606,6 +4599,15 @@ void TextEdit::remove_caret(int p_caret) { } } +void TextEdit::remove_drag_caret() { + if (drag_caret_index >= 0) { + if (drag_caret_index < carets.size()) { + remove_caret(drag_caret_index); + } + drag_caret_index = -1; + } +} + void TextEdit::remove_secondary_carets() { if (carets.size() == 1) { return; |