diff options
Diffstat (limited to 'scene')
| -rw-r--r-- | scene/gui/spin_box.cpp | 3 | ||||
| -rw-r--r-- | scene/main/viewport.cpp | 2 | ||||
| -rw-r--r-- | scene/main/viewport.h | 2 |
3 files changed, 4 insertions, 3 deletions
diff --git a/scene/gui/spin_box.cpp b/scene/gui/spin_box.cpp index a0c8f7c91f..4f4754add5 100644 --- a/scene/gui/spin_box.cpp +++ b/scene/gui/spin_box.cpp @@ -202,7 +202,8 @@ void SpinBox::_line_edit_focus_enter() { void SpinBox::_line_edit_focus_exit() { // Discontinue because the focus_exit was caused by left-clicking the arrows. - if (get_viewport()->gui_get_focus_owner() == get_line_edit()) { + const Viewport *viewport = get_viewport(); + if (!viewport || viewport->gui_get_focus_owner() == get_line_edit()) { return; } // Discontinue because the focus_exit was caused by right-click context menu. diff --git a/scene/main/viewport.cpp b/scene/main/viewport.cpp index e7970b212e..8fcf9e84c4 100644 --- a/scene/main/viewport.cpp +++ b/scene/main/viewport.cpp @@ -3156,7 +3156,7 @@ void Viewport::gui_release_focus() { } } -Control *Viewport::gui_get_focus_owner() { +Control *Viewport::gui_get_focus_owner() const { ERR_READ_THREAD_GUARD_V(nullptr); return gui.key_focus; } diff --git a/scene/main/viewport.h b/scene/main/viewport.h index 63cddddbcb..1cb32d4509 100644 --- a/scene/main/viewport.h +++ b/scene/main/viewport.h @@ -599,7 +599,7 @@ public: int gui_get_canvas_sort_index(); void gui_release_focus(); - Control *gui_get_focus_owner(); + Control *gui_get_focus_owner() const; PackedStringArray get_configuration_warnings() const override; |
