summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--scene/gui/text_edit.cpp3
-rw-r--r--tools/editor/plugins/script_editor_plugin.cpp24
2 files changed, 15 insertions, 12 deletions
diff --git a/scene/gui/text_edit.cpp b/scene/gui/text_edit.cpp
index 75174a85de..681c33652e 100644
--- a/scene/gui/text_edit.cpp
+++ b/scene/gui/text_edit.cpp
@@ -3494,6 +3494,9 @@ void TextEdit::set_line(int line, String new_text)
return;
_remove_text(line, 0, line, text[line].length());
_insert_text(line, 0, new_text);
+ if (cursor.line==line) {
+ cursor.column=MIN(cursor.column,new_text.length());
+ }
}
void TextEdit::insert_at(const String &p_text, int at)
diff --git a/tools/editor/plugins/script_editor_plugin.cpp b/tools/editor/plugins/script_editor_plugin.cpp
index e6e311cfa1..edc5d460e7 100644
--- a/tools/editor/plugins/script_editor_plugin.cpp
+++ b/tools/editor/plugins/script_editor_plugin.cpp
@@ -816,11 +816,11 @@ void ScriptEditor::_menu_option(int p_option) {
if (scr.is_null())
return;
- int begin, end;
- begin = tx->get_selection_from_line();
+
if (tx->is_selection_active())
{
- end = tx->get_selection_to_line();
+ int begin = tx->get_selection_from_line();
+ int end = tx->get_selection_to_line();
for (int i = begin; i <= end; i++)
{
String line_text = tx->get_line(i);
@@ -840,7 +840,7 @@ void ScriptEditor::_menu_option(int p_option) {
}
else
{
- begin = tx->cursor_get_line();
+ int begin = tx->cursor_get_line();
String line_text = tx->get_line(begin);
// begins with tab
if (line_text.begins_with("\t"))
@@ -866,11 +866,10 @@ void ScriptEditor::_menu_option(int p_option) {
if (scr.is_null())
return;
- int begin, end;
- begin = tx->get_selection_from_line();
if (tx->is_selection_active())
{
- end = tx->get_selection_to_line();
+ int begin = tx->get_selection_from_line();
+ int end = tx->get_selection_to_line();
for (int i = begin; i <= end; i++)
{
String line_text = tx->get_line(i);
@@ -880,7 +879,7 @@ void ScriptEditor::_menu_option(int p_option) {
}
else
{
- begin = tx->cursor_get_line();
+ int begin = tx->cursor_get_line();
String line_text = tx->get_line(begin);
line_text = '\t' + line_text;
tx->set_line(begin, line_text);
@@ -913,11 +912,12 @@ void ScriptEditor::_menu_option(int p_option) {
if (scr.is_null())
return;
- int begin, end;
- begin = tx->get_selection_from_line();
+
+
if (tx->is_selection_active())
{
- end = tx->get_selection_to_line();
+ int begin = tx->get_selection_from_line();
+ int end = tx->get_selection_to_line();
for (int i = begin; i <= end; i++)
{
String line_text = tx->get_line(i);
@@ -931,7 +931,7 @@ void ScriptEditor::_menu_option(int p_option) {
}
else
{
- begin = tx->cursor_get_line();
+ int begin = tx->cursor_get_line();
String line_text = tx->get_line(begin);
if (line_text.begins_with("#"))