Author: jghali
Date: Sat Nov 21 23:53:31 2020
New Revision: 24271

URL: http://scribus.net/websvn/listing.php?repname=Scribus&sc=1&rev=24271
Log:
#16325: Fix sometime disappearing space in text after flow around object

Modified:
    trunk/Scribus/scribus/pageitem_textframe.cpp

Modified: trunk/Scribus/scribus/pageitem_textframe.cpp
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=24271&path=/trunk/Scribus/scribus/pageitem_textframe.cpp
==============================================================================
--- trunk/Scribus/scribus/pageitem_textframe.cpp        (original)
+++ trunk/Scribus/scribus/pageitem_textframe.cpp        Sat Nov 21 23:53:31 2020
@@ -1851,7 +1851,8 @@
                        maxYDesc = current.yPos + realDesc;
                        if (style.lineSpacingMode() != 
ParagraphStyle::AutomaticLineSpacing)
                        {
-                               maxYAsc = qMin(maxYAsc, qMax(0.0, current.yPos 
- asce));
+                               // #11727, #11628, etc.
+                               maxYAsc = qMax(0.0, qMin(maxYAsc, current.yPos 
- asce));
                                maxYDesc = current.yPos + desc;
                        }
 
@@ -1934,7 +1935,8 @@
                                                maxYDesc = current.yPos + 
realDesc;
                                                if (style.lineSpacingMode() != 
ParagraphStyle::AutomaticLineSpacing)
                                                {
-                                                       maxYAsc = qMin(maxYAsc, 
qMax(0.0, current.yPos - asce));
+                                                       // #11727, #11628, etc.
+                                                       maxYAsc = qMax(0.0, 
qMin(maxYAsc, current.yPos - asce));
                                                        maxYDesc = current.yPos 
+ desc;
                                                }
 
@@ -2810,7 +2812,12 @@
                                        if (firstLineOffset() == 
FLOPRealGlyphHeight)
                                                addAsce = realAsce;
                                        else if (firstLineOffset() == 
FLOPLineSpacing)
-                                               addAsce = style.lineSpacing() + 
offset;
+                                       {
+                                               if (DropCmode)
+                                                       addAsce = DropCapDrop + 
style.lineSpacing();
+                                               else
+                                                       addAsce = 
style.lineSpacing();
+                                       }
                                }
                                maxYAsc = current.yPos - addAsce;
                        }
@@ -2820,16 +2827,15 @@
                        maxYAsc = qMax(maxYAsc, 0.0);
                        maxYDesc = current.yPos + realDesc;
 
-                       if (style.lineSpacingMode() == 
ParagraphStyle::AutomaticLineSpacing)
-                       {
-                               regionMinY = static_cast<int>(floor(maxYAsc));
-                               regionMaxY = static_cast<int>(floor(maxYDesc));
-                       }
-                       else // #11727, #11628, etc.
-                       {
-                               regionMinY = static_cast<int>(qMax(0.0, 
floor(current.yPos - (realAsce + offset))));
-                               regionMaxY = 
static_cast<int>(floor(current.yPos + realDesc));
-                       }
+                       if (style.lineSpacingMode() != 
ParagraphStyle::AutomaticLineSpacing)
+                       {
+                               // #11727, #11628, etc.
+                               maxYAsc = qMax(0.0, qMin(maxYAsc, current.yPos 
- asce));
+                               maxYDesc = current.yPos + desc;
+                       }
+
+                       regionMinY = static_cast<int>(floor(maxYAsc));
+                       regionMaxY = static_cast<int>(floor(maxYDesc));
 
                        EndX = current.endOfLine(m_availableRegion, 
style.rightMargin(), regionMinY, regionMaxY);
                        current.finishLine(EndX - current.rightIndent);


_______________________________________________
scribus-commit mailing list
[email protected]
http://lists.scribus.net/mailman/listinfo/scribus-commit

Reply via email to