Ensure one shot signals are not disconnected while edited, closes #7776

This commit is contained in:
Juan Linietsky 2018-07-29 21:05:31 -03:00
parent 95a9e51975
commit ac52eb444f

View file

@ -1209,7 +1209,15 @@ Error Object::emit_signal(const StringName &p_name, const Variant **p_args, int
}
}
if (c.flags & CONNECT_ONESHOT) {
bool disconnect = c.flags & CONNECT_ONESHOT;
#ifdef TOOLS_ENABLED
if (disconnect && (c.flags & CONNECT_PERSIST) && Engine::get_singleton()->is_editor_hint()) {
//this signal was connected from the editor, and is being edited. just dont disconnect for now
disconnect = false;
}
#endif
if (disconnect) {
_ObjectSignalDisconnectData dd;
dd.signal = p_name;
dd.target = target;