dropcap_FLO.patch (1,554 bytes)
Index: Version135/Scribus/scribus/pageitem_textframe.cpp
===================================================================
--- Version135/Scribus/scribus/pageitem_textframe.cpp (wersja 16641)
+++ Version135/Scribus/scribus/pageitem_textframe.cpp (kopia robocza)
@@ -696,23 +698,29 @@
{
if (itemsInLine <= 0)
return;
- if ((!hasDropCap) && (startOfCol) && (style.lineSpacingMode() != ParagraphStyle::BaselineGridLineSpacing))
+ if (startOfCol && (style.lineSpacingMode() != ParagraphStyle::BaselineGridLineSpacing))
{
- //FIXME: use glyphs, not chars
- double firstasce = itemText.charStyle(line.firstItem).font().ascent(itemText.charStyle(line.firstItem).fontSize() / 10.0);
double adj (0.0);
double currasce (this->getLineAscent(itemText));
- if( offsetPolicy == FLOPRealGlyphHeight )
+ if( offsetPolicy == FLOPFontAscent )
{
- adj = firstasce - currasce;
- }
- else if( offsetPolicy == FLOPFontAscent )
- {
adj = 0.0;
}
- else if( offsetPolicy == FLOPLineSpacing )
+ else
{
- adj = firstasce - style.lineSpacing();
+ //FIXME: use glyphs, not chars
+ double firstasce = itemText.charStyle(line.firstItem).font().ascent(itemText.charStyle(line.firstItem).fontSize() / 10.0);
+ if( offsetPolicy == FLOPRealGlyphHeight )
+ {
+ if (!hasDropCap)
+ adj = firstasce - currasce;
+ else
+ adj = 0.0;
+ }
+ else if( offsetPolicy == FLOPLineSpacing )
+ {
+ adj = firstasce - style.lineSpacing();
+ }
}
line.ascent = currasce;
line.y -= adj;