Button: disabled buttons shouldnt do anything at all on MouseDown
Console: prevent text wrapping/drawing off screen
Control: best to defalt changed to false

when the control is added to a window it is invalidated. if this starts as true, then the window wont get invalidated until the next update.
TextArea: dont clear the select options if UpdateState is called with an out of bounds index
TextArea: adjust hover point for speaker portrait
TextArea: move mouseDown method near other mouse methods

and implement onMouseLeave to clear the hover state
Dialog: add a newline after journal update
TextArea: more succinct method of determining dialog text position

The main reason I'm switching to this location method, is so that journal updates/XP rewards etc arent scrolled out (even if multiline!).

it has 1 potential drawback compared to the other method. It will show the response to any selections above the next text; I dont mind this, however, I understand if we want to revert or tweak the dialog mechanisim to reorder tings so that we can have journal updates without also seeing dialog response.
Font: refactoring StringSize method

there were some lazy shortcuts here before and somewhat confusing code
we will need complete accuracy from this for some other fixes im working on
Font: fix lazy vertical alignment hack

now that we have a point parameter and a SizeString method that works we can pre-calculate this and simply manipulate the starting location.
this should boot opengl performance considerably
SizeString: dont wrap when the work alone is wider than the rgn
Font: split RenderText int RenderText + RenderLine

also removes the lazy horizontal alignmnet hack