commit b6300395a75f7e5ae018f4d458838d2037c284a9
Author: Juergen Spitzmueller <[email protected]>
Date:   Thu May 7 17:37:35 2026 +0200

    Fix on-screen representation of pagewidth length (#13309)
    
    (cherry picked from commit 467c7281c92d1b1f19c7781104150f185b823364)
---
 src/support/Length.cpp | 13 +++++++------
 src/support/Length.h   |  2 +-
 status.25x             |  2 ++
 3 files changed, 10 insertions(+), 7 deletions(-)

diff --git a/src/support/Length.cpp b/src/support/Length.cpp
index 28fb86bfc6..f5c723f543 100644
--- a/src/support/Length.cpp
+++ b/src/support/Length.cpp
@@ -100,7 +100,7 @@ string const Length::asLatexString() const
                break;
        default:
                os << formatFPNumber(val_) << unit_name[unit_];
-         break;
+               break;
        }
        return os.str();
 }
@@ -170,12 +170,13 @@ int Length::inPixels(int text_width, int em_width_base) 
const
        // is the same as on paper.
 
        double const text_width_in = text_width / (zoom * dpi);
-       double const result = zoom * dpi * inInch(text_width_in, em_width_in);
+       double const margin = 40 / (zoom * dpi);
+       double const result = zoom * dpi * inInch(text_width_in, em_width_in, 
margin);
        return support::iround(result);
 }
 
 
-double Length::inInch(double text_width, double em_width) const
+double Length::inInch(double text_width, double em_width, double margin) const
 {
        double result = 0.0;
 
@@ -236,8 +237,7 @@ double Length::inInch(double text_width, double em_width) 
const
                result = val_ * text_width / 100;
                break;
        case Length::PPW:
-               // paperwidth/textwidth is 1.7 for A4 paper with default margins
-               result = val_ * text_width * 1.7 / 100;
+               result = val_ * (text_width + margin) / 100;
                break;
        case Length::PTH:
                result = val_ * text_width * 1.787 / 100;
@@ -266,7 +266,8 @@ int Length::inBP() const
 
        double const text_width_in = 210.0 / 2.54; // assume A4
        double const em_width_in = 10.0 / 72.27;
-       double const result = 72.0 * inInch(text_width_in, em_width_in);
+       double const margin = 40.0 / 72.27;
+       double const result = 72.0 * inInch(text_width_in, em_width_in, margin);
        return support::iround(result);
 }
 
diff --git a/src/support/Length.h b/src/support/Length.h
index cd0ad81012..7863a9cfa5 100644
--- a/src/support/Length.h
+++ b/src/support/Length.h
@@ -109,7 +109,7 @@ public:
 
 private:
        /// Convert value to inch for text width and em width given in inch
-       double inInch(double text_width, double em_width) const;
+       double inInch(double text_width, double em_width, double margin) const;
        ///
        double val_ = 0;
        ///
diff --git a/status.25x b/status.25x
index 884e4fef2c..78d74aebcf 100644
--- a/status.25x
+++ b/status.25x
@@ -78,6 +78,8 @@ What's new
 
 - Fix background color drawing for non-center aligned tabular cells.
 
+- Fix on-screen representation of "pagewidth" length (bug 13309).
+
 
 * INTERNALS
 
-- 
lyx-cvs mailing list
[email protected]
https://lists.lyx.org/mailman/listinfo/lyx-cvs

Reply via email to