diff --git a/CHANGELOG b/CHANGELOG
index 28f743d13221..f9400c7d0e88 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,6 @@
+2015-01-23 Text bounding boxes are now computed with advance width rather than
+ ink area. This may result in slightly different placement of text.
+
2014-10-27 Allowed selection of the backend using the `MPLBACKEND` environment
variable. Added documentation on backend selection methods.
diff --git a/lib/matplotlib/backends/backend_agg.py b/lib/matplotlib/backends/backend_agg.py
index c7a59be98ce8..687e52bcfc78 100644
--- a/lib/matplotlib/backends/backend_agg.py
+++ b/lib/matplotlib/backends/backend_agg.py
@@ -202,12 +202,15 @@ def draw_text(self, gc, x, y, s, prop, angle, ismath=False, mtext=None):
font.draw_glyphs_to_bitmap(antialiased=rcParams['text.antialiased'])
d = font.get_descent() / 64.0
# The descent needs to be adjusted for the angle
+ xo, yo = font.get_bitmap_offset()
+ xo /= 64.0
+ yo /= 64.0
xd = -d * np.sin(np.deg2rad(angle))
yd = d * np.cos(np.deg2rad(angle))
#print x, y, int(x), int(y), s
self._renderer.draw_text_image(
- font, np.round(x - xd), np.round(y + yd) + 1, angle, gc)
+ font, np.round(x - xd + xo), np.round(y + yd + yo) + 1, angle, gc)
def get_text_width_height_descent(self, s, prop, ismath):
"""
diff --git a/lib/matplotlib/tests/baseline_images/test_arrow_patches/boxarrow_test_image.png b/lib/matplotlib/tests/baseline_images/test_arrow_patches/boxarrow_test_image.png
index 3ddad736d44a..dc8605d5bf22 100644
Binary files a/lib/matplotlib/tests/baseline_images/test_arrow_patches/boxarrow_test_image.png and b/lib/matplotlib/tests/baseline_images/test_arrow_patches/boxarrow_test_image.png differ
diff --git a/lib/matplotlib/tests/baseline_images/test_axes/axhspan_epoch.pdf b/lib/matplotlib/tests/baseline_images/test_axes/axhspan_epoch.pdf
index a4098995a306..b506e44cd48b 100644
Binary files a/lib/matplotlib/tests/baseline_images/test_axes/axhspan_epoch.pdf and b/lib/matplotlib/tests/baseline_images/test_axes/axhspan_epoch.pdf differ
diff --git a/lib/matplotlib/tests/baseline_images/test_axes/axhspan_epoch.png b/lib/matplotlib/tests/baseline_images/test_axes/axhspan_epoch.png
index ca3f593f08b1..8f2b7cad1ca0 100644
Binary files a/lib/matplotlib/tests/baseline_images/test_axes/axhspan_epoch.png and b/lib/matplotlib/tests/baseline_images/test_axes/axhspan_epoch.png differ
diff --git a/lib/matplotlib/tests/baseline_images/test_axes/axhspan_epoch.svg b/lib/matplotlib/tests/baseline_images/test_axes/axhspan_epoch.svg
index 61fa93fcf1ca..214729508539 100644
--- a/lib/matplotlib/tests/baseline_images/test_axes/axhspan_epoch.svg
+++ b/lib/matplotlib/tests/baseline_images/test_axes/axhspan_epoch.svg
@@ -5,7 +5,7 @@