ID:2379818
 
Resolved
Visual contents followed the visibility rules for images, which ignore invisibility, rather than the rules for regular objects. As a result, setting invisibility for a parent would still display its visual contents instead of leaving the whole "tree" invisible.
BYOND Version:512.1426
Operating System:Windows 7 Ultimate 64-bit
Web Browser:Chrome 67.0.3396.87
Applies to:Dream Seeker
Status: Resolved (512.1433)

This issue has been resolved.
Descriptive Problem Summary:

vis_contents don't care if you can't see their parent at the least in the screen.

mob/Login()
var/obj/o = new()
o.invisibility = 101
o.screen_loc = "1,1"
o.vis_contents += new/obj{icon='test.dmi'}()
client.screen += o


One would expect that since you can't see the root object due to it being invisible, its vis_children would also not be visible. This is not the case.

Perhaps later some control over this would be nice using some kind of flag hinting system, but at the moment it makes quickly hiding compound UI objects really obnoxious. Especially since I use screen order for drawing order.
Lummox JR resolved issue with message:
Visual contents followed the visibility rules for images, which ignore invisibility, rather than the rules for regular objects. As a result, setting invisibility for a parent would still display its visual contents instead of leaving the whole "tree" invisible.