mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-14 12:13:06 +00:00
NanoUI windows now close on Destroy(), preventing all sorts of qdel issues.
This commit is contained in:
@@ -18,7 +18,8 @@
|
|||||||
|
|
||||||
/obj/Destroy()
|
/obj/Destroy()
|
||||||
processing_objects -= src
|
processing_objects -= src
|
||||||
..()
|
nanomanager.close_uis(src)
|
||||||
|
return ..()
|
||||||
|
|
||||||
/obj/Topic(href, href_list, var/nowindow = 0, var/datum/topic_state/state = default_state)
|
/obj/Topic(href, href_list, var/nowindow = 0, var/datum/topic_state/state = default_state)
|
||||||
// Calling Topic without a corresponding window open causes runtime errors
|
// Calling Topic without a corresponding window open causes runtime errors
|
||||||
|
|||||||
@@ -105,6 +105,26 @@
|
|||||||
update_count++
|
update_count++
|
||||||
return update_count
|
return update_count
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Close all /nanoui uis attached to src_object
|
||||||
|
*
|
||||||
|
* @param src_object /obj|/mob The obj or mob which the uis are attached to
|
||||||
|
*
|
||||||
|
* @return int The number of uis close
|
||||||
|
*/
|
||||||
|
/datum/nanomanager/proc/close_uis(src_object)
|
||||||
|
var/src_object_key = "\ref[src_object]"
|
||||||
|
if (isnull(open_uis[src_object_key]) || !istype(open_uis[src_object_key], /list))
|
||||||
|
return 0
|
||||||
|
|
||||||
|
var/close_count = 0
|
||||||
|
for (var/ui_key in open_uis[src_object_key])
|
||||||
|
for (var/datum/nanoui/ui in open_uis[src_object_key][ui_key])
|
||||||
|
if(ui && ui.src_object && ui.user && ui.src_object.nano_host())
|
||||||
|
ui.close()
|
||||||
|
close_count++
|
||||||
|
return close_count
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Update /nanoui uis belonging to user
|
* Update /nanoui uis belonging to user
|
||||||
*
|
*
|
||||||
|
|||||||
Reference in New Issue
Block a user