aboutsummaryrefslogtreecommitdiff
path: root/scene/gui
diff options
context:
space:
mode:
Diffstat (limited to 'scene/gui')
-rw-r--r--scene/gui/file_dialog.cpp10
-rw-r--r--scene/gui/label.cpp10
-rw-r--r--scene/gui/rich_text_label.cpp2
-rw-r--r--scene/gui/text_edit.cpp9
4 files changed, 18 insertions, 13 deletions
diff --git a/scene/gui/file_dialog.cpp b/scene/gui/file_dialog.cpp
index 13cf87ac2..c53de6568 100644
--- a/scene/gui/file_dialog.cpp
+++ b/scene/gui/file_dialog.cpp
@@ -608,18 +608,12 @@ void FileDialog::_update_drives() {
drives->clear();
drives->show();
- int current=-1;
- String abspath = dir_access->get_current_dir();
-
for(int i=0;i<dir_access->get_drive_count();i++) {
- String d = dir_access->get_drive(i);
- if (abspath.begins_with(d))
- current=i;
+ String d = dir_access->get_drive(i);
drives->add_item(dir_access->get_drive(i));
}
- if (current!=-1)
- drives->select(current);
+ drives->select(dir_access->get_current_drive());
}
}
diff --git a/scene/gui/label.cpp b/scene/gui/label.cpp
index dac21275d..27d0f568a 100644
--- a/scene/gui/label.cpp
+++ b/scene/gui/label.cpp
@@ -378,7 +378,11 @@ void Label::regenerate_word_cache() {
if (uppercase)
current=String::char_uppercase(current);
- bool not_latin = current>=33 && (current < 65||current >90) && (current<97||current>122) && (current<48||current>57);
+ // ranges taken from http://www.unicodemap.org/
+ // if your language is not well supported, consider helping improve
+ // the unicode support in Godot.
+ bool separatable = (current>=0x2E08 && current<=0xFAFF) || (current>=0xFE30 && current<=0xFE4F);
+ //current>=33 && (current < 65||current >90) && (current<97||current>122) && (current<48||current>57);
bool insert_newline=false;
int char_width;
@@ -433,8 +437,8 @@ void Label::regenerate_word_cache() {
}
- if ((autowrap && (line_width >= width) && ((last && last->char_pos >= 0) || not_latin)) || insert_newline) {
- if (not_latin) {
+ if ((autowrap && (line_width >= width) && ((last && last->char_pos >= 0) || separatable)) || insert_newline) {
+ if (separatable) {
if (current_word_size>0) {
WordCache *wc = memnew( WordCache );
if (word_cache) {
diff --git a/scene/gui/rich_text_label.cpp b/scene/gui/rich_text_label.cpp
index 6b2e5aea7..987a2ed80 100644
--- a/scene/gui/rich_text_label.cpp
+++ b/scene/gui/rich_text_label.cpp
@@ -1673,6 +1673,8 @@ void RichTextLabel::_bind_methods() {
ObjectTypeDB::bind_method(_MD("set_scroll_follow","follow"),&RichTextLabel::set_scroll_follow);
ObjectTypeDB::bind_method(_MD("is_scroll_following"),&RichTextLabel::is_scroll_following);
+ ObjectTypeDB::bind_method(_MD("get_v_scroll"),&RichTextLabel::get_v_scroll);
+
ObjectTypeDB::bind_method(_MD("set_tab_size","spaces"),&RichTextLabel::set_tab_size);
ObjectTypeDB::bind_method(_MD("get_tab_size"),&RichTextLabel::get_tab_size);
diff --git a/scene/gui/text_edit.cpp b/scene/gui/text_edit.cpp
index db8fbf7a6..0c15f9950 100644
--- a/scene/gui/text_edit.cpp
+++ b/scene/gui/text_edit.cpp
@@ -1893,7 +1893,7 @@ void TextEdit::_input_event(const InputEvent& p_input_event) {
selection.from_line=0;
selection.from_column=0;
selection.to_line=text.size()-1;
- selection.to_column=text[selection.to_line].size();
+ selection.to_column=text[selection.to_line].length();
selection.selecting_mode=Selection::MODE_NONE;
update();
@@ -2778,6 +2778,11 @@ void TextEdit::copy() {
if (!selection.active)
return;
+ print_line("from line: "+itos(selection.from_line));
+ print_line("from column: "+itos(selection.from_column));
+ print_line("to line: "+itos(selection.to_line));
+ print_line("to column: "+itos(selection.to_column));
+
String clipboard = _base_get_text(selection.from_line,selection.from_column,selection.to_line,selection.to_column);
OS::get_singleton()->set_clipboard(clipboard);
@@ -2809,7 +2814,7 @@ void TextEdit::select_all() {
selection.from_line=0;
selection.from_column=0;
selection.to_line=text.size()-1;
- selection.to_column=text[selection.to_line].size();
+ selection.to_column=text[selection.to_line].length();
selection.selecting_mode=Selection::MODE_NONE;
update();