What I am trying to do is create a CallOutBox with no border and no arrow, where clicking anywhere outside the box will make it vanish.
So it looks like the arrow size of a CallOutBox can only be set after the box has been launched. Whereas the border size can be set before the box is launched (in LnF).
Therefore to remove the arrow you must launch the CallOutBox, and then set the arrow size to 0. This however leaves an invisible border around the box (which is the length of the old arrow), in which clicking does not cause the box to dissappear. In order to remove this unclickable section you must call resized() which will redraw the CallOutBox correctly, with no invisible border where the arrow once was.
Would it not make sense to allow the arrow size to be set before the CallOutBox is launched to it doesn't have to be redrawn (as has been done with border size).
Or perhaps there is another way of getting around this problem?