Fix crash when tooltip_request_func object is freed
This commit is contained in:
parent
a7ba227631
commit
45e943f4fe
|
@ -2399,6 +2399,7 @@ Control::CursorShape TextEdit::get_cursor_shape(const Point2 &p_pos) const {
|
||||||
}
|
}
|
||||||
|
|
||||||
String TextEdit::get_tooltip(const Point2 &p_pos) const {
|
String TextEdit::get_tooltip(const Point2 &p_pos) const {
|
||||||
|
Object *tooltip_obj = ObjectDB::get_instance(tooltip_obj_id);
|
||||||
if (!tooltip_obj) {
|
if (!tooltip_obj) {
|
||||||
return Control::get_tooltip(p_pos);
|
return Control::get_tooltip(p_pos);
|
||||||
}
|
}
|
||||||
|
@ -2421,7 +2422,8 @@ String TextEdit::get_tooltip(const Point2 &p_pos) const {
|
||||||
}
|
}
|
||||||
|
|
||||||
void TextEdit::set_tooltip_request_func(Object *p_obj, const StringName &p_function, const Variant &p_udata) {
|
void TextEdit::set_tooltip_request_func(Object *p_obj, const StringName &p_function, const Variant &p_udata) {
|
||||||
tooltip_obj = p_obj;
|
ERR_FAIL_NULL(p_obj);
|
||||||
|
tooltip_obj_id = p_obj->get_instance_id();
|
||||||
tooltip_func = p_function;
|
tooltip_func = p_function;
|
||||||
tooltip_ud = p_udata;
|
tooltip_ud = p_udata;
|
||||||
}
|
}
|
||||||
|
|
|
@ -330,7 +330,7 @@ private:
|
||||||
int _get_column_pos_of_word(const String &p_key, const String &p_search, uint32_t p_search_flags, int p_from_column) const;
|
int _get_column_pos_of_word(const String &p_key, const String &p_search, uint32_t p_search_flags, int p_from_column) const;
|
||||||
|
|
||||||
/* Tooltip. */
|
/* Tooltip. */
|
||||||
Object *tooltip_obj = nullptr;
|
ObjectID tooltip_obj_id;
|
||||||
StringName tooltip_func;
|
StringName tooltip_func;
|
||||||
Variant tooltip_ud;
|
Variant tooltip_ud;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue