summaryrefslogtreecommitdiffstats
path: root/scene/gui/tree.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'scene/gui/tree.cpp')
-rw-r--r--scene/gui/tree.cpp41
1 files changed, 16 insertions, 25 deletions
diff --git a/scene/gui/tree.cpp b/scene/gui/tree.cpp
index 66ce117c9d..e81c08dbea 100644
--- a/scene/gui/tree.cpp
+++ b/scene/gui/tree.cpp
@@ -1721,9 +1721,22 @@ int Tree::propagate_mouse_event(const Point2i &p_pos,int x_ofs,int y_ofs,bool p_
}
+void Tree::_text_editor_modal_close() {
+
+ if ( Input::get_singleton()->is_key_pressed(KEY_ESCAPE) ||
+ Input::get_singleton()->is_key_pressed(KEY_ENTER) ||
+ Input::get_singleton()->is_key_pressed(KEY_RETURN) ) {
+
+ return;
+ }
+
+
+ text_editor_enter(text_editor->get_text());
+}
+
+
void Tree::text_editor_enter(String p_text) {
- text_changed=false;
text_editor->hide();
value_editor->hide();
@@ -1762,22 +1775,6 @@ void Tree::text_editor_enter(String p_text) {
}
-void Tree::text_editor_changed(String p_text) {
-
- text_changed=true;
-}
-
-void Tree::text_editor_hide() {
-
- if (!text_changed)
- return;
-
- if (Input::get_singleton()->is_key_pressed(KEY_ESCAPE))
- return;
-
- text_editor_enter(text_editor->get_text());
-}
-
void Tree::value_editor_changed(double p_value) {
if (updating_value_editor) {
@@ -2367,8 +2364,6 @@ bool Tree::edit_selected() {
} else if (c.mode==TreeItem::CELL_MODE_STRING || c.mode==TreeItem::CELL_MODE_RANGE) {
- text_changed=false;
-
Point2i textedpos=get_global_pos() + rect.pos;
text_editor->set_pos( textedpos );
text_editor->set_size( rect.size);
@@ -3204,8 +3199,7 @@ void Tree::_bind_methods() {
ObjectTypeDB::bind_method(_MD("_input_event"),&Tree::_input_event);
ObjectTypeDB::bind_method(_MD("_popup_select"),&Tree::popup_select);
ObjectTypeDB::bind_method(_MD("_text_editor_enter"),&Tree::text_editor_enter);
- ObjectTypeDB::bind_method(_MD("_text_editor_changed"),&Tree::text_editor_changed);
- ObjectTypeDB::bind_method(_MD("_text_editor_hide"),&Tree::text_editor_hide);
+ ObjectTypeDB::bind_method(_MD("_text_editor_modal_close"),&Tree::_text_editor_modal_close);
ObjectTypeDB::bind_method(_MD("_value_editor_changed"),&Tree::value_editor_changed);
ObjectTypeDB::bind_method(_MD("_scroll_moved"),&Tree::_scroll_moved);
@@ -3304,8 +3298,7 @@ Tree::Tree() {
h_scroll->connect("value_changed", this,"_scroll_moved");
v_scroll->connect("value_changed", this,"_scroll_moved");
text_editor->connect("text_entered", this,"_text_editor_enter");
- text_editor->connect("text_changed",this,"_text_editor_changed");
- text_editor->connect("hide",this,"_text_editor_hide");
+ text_editor->connect("modal_close", this,"_text_editor_modal_close");
popup_menu->connect("item_pressed", this,"_popup_select");
value_editor->connect("value_changed", this,"_value_editor_changed");
@@ -3339,8 +3332,6 @@ Tree::Tree() {
hide_folding=false;
- text_changed=false;
-
}