summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoraXu-AP <1621768+aXu-AP@users.noreply.github.com>2023-02-16 16:17:24 +0200
committeraXu-AP <1621768+aXu-AP@users.noreply.github.com>2023-02-16 16:17:24 +0200
commitd188068caae0236cbd0def307a06728b555351d7 (patch)
treefebcefffe345ed50aa311fde0952d797c1593a90
parentaa6ec763179e5bf1d1300aa72dc5f4172d810efa (diff)
Fix toggle comment not moving caret
Fix regression if caret is at the beginning of the line and comment is toggled.
-rw-r--r--editor/code_editor.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/editor/code_editor.cpp b/editor/code_editor.cpp
index 97a73d89e7..9a8a1097cd 100644
--- a/editor/code_editor.cpp
+++ b/editor/code_editor.cpp
@@ -1629,14 +1629,15 @@ void CodeTextEditor::toggle_inline_comment(const String &delimiter) {
int selection_i = 0;
int offset = (is_commented ? -1 : 1) * delimiter.length();
for (const int &c2 : caret_edit_order) {
+ bool is_line_selection = text_editor->has_selection(c2) && text_editor->get_selection_from_line(c2) < text_editor->get_selection_to_line(c2);
if (text_editor->get_caret_line(c2) >= from && text_editor->get_caret_line(c2) <= to) {
int caret_col = caret_cols[caret_i++];
- caret_col += (caret_col == 0) ? 0 : offset;
+ caret_col += (is_line_selection && caret_col == 0) ? 0 : offset;
text_editor->set_caret_column(caret_col, c2 == 0, c2);
}
if (text_editor->has_selection(c2) && text_editor->get_selection_to_line(c2) >= from && text_editor->get_selection_to_line(c2) <= to) {
int from_col = text_editor->get_selection_from_column(c2);
- from_col += (from_col == 0) ? 0 : offset;
+ from_col += (is_line_selection && from_col == 0) ? 0 : offset;
int to_col = selection_to_cols[selection_i++];
to_col += (to_col == 0) ? 0 : offset;
text_editor->select(