summaryrefslogtreecommitdiffstats
path: root/scene
diff options
context:
space:
mode:
Diffstat (limited to 'scene')
-rw-r--r--scene/gui/spin_box.cpp3
-rw-r--r--scene/main/viewport.cpp2
-rw-r--r--scene/main/viewport.h2
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;