diff options
author | Rémi Verschelde <remi@verschelde.fr> | 2016-06-19 18:58:31 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-06-19 18:58:31 +0200 |
commit | 618d34463d37f179ae7f6fbba15502e2e8ffac65 (patch) | |
tree | 7d12e47066baf8d6fea3c45d434bcf04c1a86fc3 | |
parent | 7bdccc19119cec273f46d4d3b1be72f87049749a (diff) | |
parent | 8cbd0b9ae34f893683bb650813320cfe9d1b3d78 (diff) | |
download | redot-engine-618d34463d37f179ae7f6fbba15502e2e8ffac65.tar.gz |
Merge pull request #5298 from Paulb23/caret_draw_focus
Text Edit no longer draws caret on focus loss
-rw-r--r-- | scene/gui/text_edit.cpp | 15 | ||||
-rw-r--r-- | scene/gui/text_edit.h | 1 |
2 files changed, 16 insertions, 0 deletions
diff --git a/scene/gui/text_edit.cpp b/scene/gui/text_edit.cpp index c08247095a..8c928513f3 100644 --- a/scene/gui/text_edit.cpp +++ b/scene/gui/text_edit.cpp @@ -417,8 +417,22 @@ void TextEdit::_notification(int p_what) { _update_caches(); } break; + case MainLoop::NOTIFICATION_WM_FOCUS_IN: { + window_has_focus = true; + draw_caret = true; + update(); + } break; + case MainLoop::NOTIFICATION_WM_FOCUS_OUT: { + window_has_focus = false; + draw_caret = false; + update(); + } break; case NOTIFICATION_DRAW: { + if ((!has_focus() && !menu->has_focus()) || !window_has_focus) { + draw_caret = false; + } + if (draw_breakpoint_gutter) { breakpoint_gutter_width = (get_row_height() * 55) / 100; cache.breakpoint_gutter_width = breakpoint_gutter_width; @@ -4518,6 +4532,7 @@ TextEdit::TextEdit() { brace_matching_enabled=false; auto_indent=false; insert_mode = false; + window_has_focus=true; menu = memnew( PopupMenu ); add_child(menu); diff --git a/scene/gui/text_edit.h b/scene/gui/text_edit.h index 22f024c491..f01e6de1c9 100644 --- a/scene/gui/text_edit.h +++ b/scene/gui/text_edit.h @@ -217,6 +217,7 @@ class TextEdit : public Control { Timer *caret_blink_timer; bool caret_blink_enabled; bool draw_caret; + bool window_has_focus; bool setting_row; bool wrap; |