improved hover/click handling in World (handles widget states)