Преглед на файлове

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.

Juan Linietsky преди 9 години
родител
ревизия
864c0e84de
променени са 3 файла, в които са добавени 8 реда и са изтрити 2 реда
  1. 0 1
      platform/x11/os_x11.cpp
  2. 3 1
      scene/gui/label.cpp
  3. 5 0
      tools/editor/code_editor.cpp

+ 0 - 1
platform/x11/os_x11.cpp

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

+ 3 - 1
scene/gui/label.cpp

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

+ 5 - 0
tools/editor/code_editor.cpp

@@ -32,6 +32,7 @@
 #include "scene/gui/separator.h"
 #include "scene/resources/dynamic_font.h"
 #include "os/keyboard.h"
+#include "tools/editor/editor_scale.h"
 
 void GotoLineDialog::popup_find_line(TextEdit *p_edit) {
 
@@ -1198,6 +1199,10 @@ CodeTextEditor::CodeTextEditor() {
 	line_col = memnew( Label );
 	status_bar->add_child(line_col);
 	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");