Make sure to reset the tooltip of its gui_parent when the viewport is removed
This commit is contained in:
parent
4b52c6caef
commit
9a05ea231a
2 changed files with 9 additions and 4 deletions
|
@ -499,6 +499,13 @@ void Viewport::_notification(int p_what) {
|
||||||
// exit event if the change in focus results in the mouse exiting
|
// exit event if the change in focus results in the mouse exiting
|
||||||
// the window.
|
// the window.
|
||||||
} break;
|
} break;
|
||||||
|
|
||||||
|
case NOTIFICATION_PREDELETE: {
|
||||||
|
if (gui_parent) {
|
||||||
|
gui_parent->gui.tooltip_popup = nullptr;
|
||||||
|
gui_parent->gui.tooltip_label = nullptr;
|
||||||
|
}
|
||||||
|
} break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1155,8 +1162,6 @@ void Viewport::_gui_cancel_tooltip() {
|
||||||
}
|
}
|
||||||
if (gui.tooltip_popup) {
|
if (gui.tooltip_popup) {
|
||||||
gui.tooltip_popup->queue_delete();
|
gui.tooltip_popup->queue_delete();
|
||||||
gui.tooltip_popup = nullptr;
|
|
||||||
gui.tooltip_label = nullptr;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1219,8 +1224,6 @@ void Viewport::_gui_show_tooltip() {
|
||||||
// Remove previous popup if we change something.
|
// Remove previous popup if we change something.
|
||||||
if (gui.tooltip_popup) {
|
if (gui.tooltip_popup) {
|
||||||
memdelete(gui.tooltip_popup);
|
memdelete(gui.tooltip_popup);
|
||||||
gui.tooltip_popup = nullptr;
|
|
||||||
gui.tooltip_label = nullptr;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!tooltip_owner) {
|
if (!tooltip_owner) {
|
||||||
|
@ -1252,6 +1255,7 @@ void Viewport::_gui_show_tooltip() {
|
||||||
panel->set_flag(Window::FLAG_POPUP, false);
|
panel->set_flag(Window::FLAG_POPUP, false);
|
||||||
panel->set_wrap_controls(true);
|
panel->set_wrap_controls(true);
|
||||||
panel->add_child(base_tooltip);
|
panel->add_child(base_tooltip);
|
||||||
|
panel->gui_parent = this;
|
||||||
|
|
||||||
gui.tooltip_popup = panel;
|
gui.tooltip_popup = panel;
|
||||||
|
|
||||||
|
|
|
@ -208,6 +208,7 @@ private:
|
||||||
friend class ViewportTexture;
|
friend class ViewportTexture;
|
||||||
|
|
||||||
Viewport *parent = nullptr;
|
Viewport *parent = nullptr;
|
||||||
|
Viewport *gui_parent = nullptr; // Whose gui.tooltip_popup it is.
|
||||||
|
|
||||||
AudioListener2D *audio_listener_2d = nullptr;
|
AudioListener2D *audio_listener_2d = nullptr;
|
||||||
Camera2D *camera_2d = nullptr;
|
Camera2D *camera_2d = nullptr;
|
||||||
|
|
Loading…
Reference in a new issue