Moved shadow visual code into a method to avoid duplicating code, shadows setter now updates shadows correctly based on searching state