line/col label was changing size with each cursor move, forcing the GUI to resize upwards and costing considerably CPU usage.

It has been changed so it won't resize the UI when modified.
This will make the code editor feel a lot smoother.
This commit is contained in:
Juan Linietsky 2016-07-09 14:54:44 -03:00
parent d23d40cfbd
commit 864c0e84de
3 changed files with 8 additions and 2 deletions

View File

@ -1773,7 +1773,6 @@ static String _get_clipboard(Atom p_source, Window x11_window, ::Display* x11_di
if (Sown == x11_window) { if (Sown == x11_window) {
printf("returning internal clipboard\n");
return p_internal_clipboard; return p_internal_clipboard;
}; };

View File

@ -535,7 +535,9 @@ void Label::set_text(const String& p_string) {
if (percent_visible<1) if (percent_visible<1)
visible_chars=get_total_character_count()*percent_visible; visible_chars=get_total_character_count()*percent_visible;
update(); update();
minimum_size_changed(); if (!autowrap) {
minimum_size_changed();
}
} }

View File

@ -32,6 +32,7 @@
#include "scene/gui/separator.h" #include "scene/gui/separator.h"
#include "scene/resources/dynamic_font.h" #include "scene/resources/dynamic_font.h"
#include "os/keyboard.h" #include "os/keyboard.h"
#include "tools/editor/editor_scale.h"
void GotoLineDialog::popup_find_line(TextEdit *p_edit) { void GotoLineDialog::popup_find_line(TextEdit *p_edit) {
@ -1198,6 +1199,10 @@ CodeTextEditor::CodeTextEditor() {
line_col = memnew( Label ); line_col = memnew( Label );
status_bar->add_child(line_col); status_bar->add_child(line_col);
line_col->set_valign(Label::VALIGN_CENTER); line_col->set_valign(Label::VALIGN_CENTER);
line_col->set_autowrap(true);
line_col->set_v_size_flags(SIZE_FILL);
line_col->set_custom_minimum_size(Size2(100,1)*EDSCALE);
status_bar->add_child( memnew( Label ) ); //to keep the height if the other labels are not visible
text_editor->connect("input_event", this,"_text_editor_input_event"); text_editor->connect("input_event", this,"_text_editor_input_event");