Code

emf import : recalculate text alignment for rotated text (Bug 341847)
authorAlvin Penner <penner@vaxxine.com>
Thu, 27 Jan 2011 23:42:51 +0000 (18:42 -0500)
committerAlvin Penner <penner@vaxxine.com>
Thu, 27 Jan 2011 23:42:51 +0000 (18:42 -0500)
src/extension/internal/emf-win32-inout.cpp

index d147a0c81c92a1f7aa40ab50dcdfdf5eb70a2e2b..c817f6d4686cee5af2a6308c9749bc9f24a4fcef 100644 (file)
@@ -1777,8 +1777,13 @@ myEnhMetaFileProc(HDC /*hDC*/, HANDLETABLE * /*lpHTable*/, ENHMETARECORD const *
             }
 
             if (!(d->dc[d->level].textAlign & TA_BOTTOM))
-                y1 += fabs(d->dc[d->level].style.font_size.computed);
-            
+                if (d->dc[d->level].style.text_transform.value) {
+                    x1 += std::sin(d->dc[d->level].style.text_transform.value*M_PI/180.0)*fabs(d->dc[d->level].style.font_size.computed);
+                    y1 += std::cos(d->dc[d->level].style.text_transform.value*M_PI/180.0)*fabs(d->dc[d->level].style.font_size.computed);
+                }
+                else
+                    y1 += fabs(d->dc[d->level].style.font_size.computed);
+
             double x = pix_to_x_point(d, x1, y1);
             double y = pix_to_y_point(d, x1, y1);