Text Edit no longer draws caret on focus loss

This commit is contained in:
Paulb23 2016-06-19 16:11:16 +01:00
parent 37d1bf4d53
commit 8cbd0b9ae3
2 changed files with 16 additions and 0 deletions

View file

@ -417,8 +417,22 @@ void TextEdit::_notification(int p_what) {
_update_caches(); _update_caches();
} break; } 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: { case NOTIFICATION_DRAW: {
if ((!has_focus() && !menu->has_focus()) || !window_has_focus) {
draw_caret = false;
}
if (draw_breakpoint_gutter) { if (draw_breakpoint_gutter) {
breakpoint_gutter_width = (get_row_height() * 55) / 100; breakpoint_gutter_width = (get_row_height() * 55) / 100;
cache.breakpoint_gutter_width = breakpoint_gutter_width; cache.breakpoint_gutter_width = breakpoint_gutter_width;
@ -4518,6 +4532,7 @@ TextEdit::TextEdit() {
brace_matching_enabled=false; brace_matching_enabled=false;
auto_indent=false; auto_indent=false;
insert_mode = false; insert_mode = false;
window_has_focus=true;
menu = memnew( PopupMenu ); menu = memnew( PopupMenu );
add_child(menu); add_child(menu);

View file

@ -217,6 +217,7 @@ class TextEdit : public Control {
Timer *caret_blink_timer; Timer *caret_blink_timer;
bool caret_blink_enabled; bool caret_blink_enabled;
bool draw_caret; bool draw_caret;
bool window_has_focus;
bool setting_row; bool setting_row;
bool wrap; bool wrap;