summaryrefslogtreecommitdiff
path: root/scene/gui
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2017-08-03 13:37:25 +0200
committerGitHub <noreply@github.com>2017-08-03 13:37:25 +0200
commitc936e9946eaf68d4b37b713fbfe512278cca278c (patch)
treef361c405f1ea8dc057ed87c92025eda082086be2 /scene/gui
parentc51354f504a7892483fdce721d720aada4c53671 (diff)
parent708ddb05af51a1dcc4cc19ace67e7c4bc23d785b (diff)
Merge pull request #10046 from Hinsbart/script_open_resource
ScriptEditor: ctrl+click can open scenes & resources.
Diffstat (limited to 'scene/gui')
-rw-r--r--scene/gui/text_edit.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/scene/gui/text_edit.cpp b/scene/gui/text_edit.cpp
index d604738da1..2fc3204f3a 100644
--- a/scene/gui/text_edit.cpp
+++ b/scene/gui/text_edit.cpp
@@ -4353,6 +4353,23 @@ String TextEdit::get_word_at_pos(const Vector2 &p_pos) const {
bool symbol = beg < s.length() && _is_symbol(s[beg]); //not sure if right but most editors behave like this
+ bool inside_quotes = false;
+ int qbegin, qend;
+ for (int i = 0; i < s.length(); i++) {
+ if (s[i] == '"') {
+ if (inside_quotes) {
+ qend = i;
+ inside_quotes = false;
+ if (col >= qbegin && col <= qend) {
+ return s.substr(qbegin, qend - qbegin);
+ }
+ } else {
+ qbegin = i + 1;
+ inside_quotes = true;
+ }
+ }
+ }
+
while (beg > 0 && s[beg - 1] > 32 && (symbol == _is_symbol(s[beg - 1]))) {
beg--;
}