]> granicus.if.org Git - docbook-dsssl/commitdiff
Fix bug 3487828 valign on inlinemediaobject in fo output has wrong property.
authorBob Stayton <bobs@sagehill.net>
Fri, 17 Feb 2012 01:20:59 +0000 (01:20 +0000)
committerBob Stayton <bobs@sagehill.net>
Fri, 17 Feb 2012 01:20:59 +0000 (01:20 +0000)
xsl/fo/graphics.xsl

index cc03ac13fe4ea1013a52a2c0908a8d08228c8162..1d7f734180a058393538ec45c557384fee7c1fec 100644 (file)
 </xsl:template>
 
 <xsl:template name="image.valign">
-  <xsl:choose>
-    <xsl:when test="@valign = 'top'">before</xsl:when>
-    <xsl:when test="@valign = 'middle'">center</xsl:when>
-    <xsl:when test="@valign = 'bottom'">after</xsl:when>
-    <xsl:otherwise>auto</xsl:otherwise>
-  </xsl:choose>
+  <xsl:if test="@valign">
+    <xsl:choose>
+      <xsl:when test="ancestor::inlinemediaobject or ancestor-or-self::inlinegraphic">
+        <xsl:choose>
+          <xsl:when test="@valign = 'top'">baseline</xsl:when>
+          <xsl:when test="@valign = 'middle'">central</xsl:when>
+          <xsl:when test="@valign = 'bottom'">text-before-edge</xsl:when>
+        </xsl:choose>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:choose>
+          <xsl:when test="@valign = 'top'">before</xsl:when>
+          <xsl:when test="@valign = 'middle'">center</xsl:when>
+          <xsl:when test="@valign = 'bottom'">after</xsl:when>
+        </xsl:choose>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:if>
 </xsl:template>
 
+  
 <xsl:template name="process.image">
   <!-- When this template is called, the current node should be  -->
   <!-- a graphic, inlinegraphic, imagedata, or videodata. All    -->
     </xsl:if>
 
     <xsl:if test="$valign != ''">
-      <xsl:attribute name="display-align">
+      <xsl:variable name="att.name">
+        <xsl:choose>
+          <xsl:when test="ancestor::inlinemediaobject or ancestor-or-self::inlinegraphic">
+            <xsl:text>alignment-baseline</xsl:text>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:text>display-align</xsl:text>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:variable>
+      <xsl:attribute name="{$att.name}">
         <xsl:value-of select="$valign"/>
       </xsl:attribute>
     </xsl:if>