Use gdk_pango_layout() for all text-size calculations. In Canvas::Text always use the same context (local image surface) for layouting (prior to this, local and window-context mix resulted in different sizes).