Setting alignment on non-fixed component.

Size of a component is calculated based on requested size and actual size if it is not fixed.

Close #999.
Do we need all this ceiling / floor sanitization?  we can have slightly inaccurate tests as long as the tests make semantic sense