officecfg/registry/schema/org/openoffice/Office/Writer.xcs    |    8 
 officecfg/registry/schema/org/openoffice/Office/WriterWeb.xcs |    8 
 sw/inc/viewopt.hxx                                            |   14 -
 sw/source/core/inc/scriptinfo.hxx                             |   10 
 sw/source/core/text/itradj.cxx                                |    6 
 sw/source/core/text/porlay.cxx                                |   10 
 sw/source/core/text/portxt.cxx                                |    4 
 sw/source/core/txtnode/fntcache.cxx                           |  128 ----------
 sw/source/ui/config/optpage.cxx                               |    3 
 sw/source/uibase/config/cfgitems.cxx                          |    6 
 sw/source/uibase/config/usrpref.cxx                           |   77 ++----
 sw/source/uibase/config/viewopt.cxx                           |    3 
 sw/source/uibase/inc/cfgitems.hxx                             |    3 
 sw/source/uibase/inc/optpage.hxx                              |    1 
 sw/uiconfig/swriter/ui/viewoptionspage.ui                     |   46 ---
 15 files changed, 61 insertions(+), 266 deletions(-)

New commits:
commit 4ed26badfd6fd9190cb6e54078b41eb38cb37dca
Author:     Caolán McNamara <caol...@redhat.com>
AuthorDate: Fri Jan 14 14:19:45 2022 +0000
Commit:     Caolán McNamara <caol...@redhat.com>
CommitDate: Thu Jan 20 21:15:25 2022 +0100

    use resolution independent positions for writer's screen-rendering
    
    in favor of pushing it down to the text renderers and leave
    it to them to optimized as best they can the the rendering
    to make it look as well as possible.
    
    the separate ScrArray can then be dropped as a consequence
    
    Change-Id: Ic0849c091a36e1a90453771b1c91b8ff706b679e
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128418
    Tested-by: Caolán McNamara <caol...@redhat.com>
    Reviewed-by: Caolán McNamara <caol...@redhat.com>

diff --git a/officecfg/registry/schema/org/openoffice/Office/Writer.xcs 
b/officecfg/registry/schema/org/openoffice/Office/Writer.xcs
index dd96056b4f67..89c63d849cf7 100644
--- a/officecfg/registry/schema/org/openoffice/Office/Writer.xcs
+++ b/officecfg/registry/schema/org/openoffice/Office/Writer.xcs
@@ -1459,14 +1459,6 @@
           </info>
           <value>false</value>
         </prop>
-        <prop oor:name="GlyphPositioningMode" oor:type="xs:int" 
oor:nillable="false">
-          <!-- UIHints: Tools - Option - Text document - Layout - [Section] 
Window -->
-          <info>
-            <desc>Specifies the Glyph Positioning Mode.</desc>
-            <label>Glyph Positioning Mode</label>
-          </info>
-          <value>2</value>
-        </prop>
       </group>
       <group oor:name="Other">
         <info>
diff --git a/officecfg/registry/schema/org/openoffice/Office/WriterWeb.xcs 
b/officecfg/registry/schema/org/openoffice/Office/WriterWeb.xcs
index b4fdab4b8890..8d633caae4f0 100644
--- a/officecfg/registry/schema/org/openoffice/Office/WriterWeb.xcs
+++ b/officecfg/registry/schema/org/openoffice/Office/WriterWeb.xcs
@@ -340,14 +340,6 @@
           </info>
           <value>false</value>
         </prop>
-        <prop oor:name="GlyphPositioningMode" oor:type="xs:int" 
oor:nillable="false">
-          <!-- UIHints: Tools - Option - HTML-Document - Layout - [Section] 
Window -->
-          <info>
-            <desc>Specifies the Glyph Positioning Mode.</desc>
-            <label>Glyph Positioning Mode</label>
-          </info>
-          <value>2</value>
-        </prop>
       </group>
       <group oor:name="Other">
         <info>
diff --git a/sw/inc/viewopt.hxx b/sw/inc/viewopt.hxx
index a6ac48b31581..e8a1c299b496 100644
--- a/sw/inc/viewopt.hxx
+++ b/sw/inc/viewopt.hxx
@@ -126,12 +126,6 @@ namespace o3tl {
     template<> struct typed_flags<ViewOptFlags> : is_typed_flags<ViewOptFlags, 
0x01ff> {};
 }
 
-enum class GlyphPositioningMode {
-    Classic,
-    Layout,
-    LayoutAndMatchRender
-};
-
 class SW_DLLPUBLIC SwViewOption
 {
     static Color    s_aDocColor;  // color of document boundaries
@@ -169,7 +163,6 @@ class SW_DLLPUBLIC SwViewOption
     sal_uInt8       m_nPagePreviewRow;       // Page Preview Row/Columns.
     sal_uInt8       m_nPagePreviewCol;       // Page Preview Row/Columns.
     SwFillMode      m_nShadowCursorFillMode;  // FillMode for ShadowCursor.
-    GlyphPositioningMode m_eGlyphPositioningMode; // Positioning strategy for 
screen glyphs
     bool            m_bReadonly : 1;      // Readonly-Doc.
     bool            m_bStarOneSetting : 1;// Prevent from UI automatics (no 
scrollbars in readonly documents).
     bool            m_bIsPagePreview : 1; // The preview mustn't print 
field/footnote/... shadings.
@@ -433,12 +426,6 @@ public:
     void SetPrinting(bool b)
         { SetCore2Option(b, ViewOptCoreFlags2::Printing); }
 
-    GlyphPositioningMode GetGlyphPositioningMode() const
-        { return m_eGlyphPositioningMode; }
-
-    void SetGlyphPositioningMode(GlyphPositioningMode eMode)
-        { m_eGlyphPositioningMode = eMode; }
-
     void SetCore2Option(bool b, ViewOptCoreFlags2 f)
     {
         if (b)
@@ -710,7 +697,6 @@ inline void SwViewOption::SetUIOptions( const SwViewOption& 
rVOpt )
     m_nUIOptions = rVOpt.m_nUIOptions;
     m_nTableDestination = rVOpt.m_nTableDestination;
     m_nShadowCursorFillMode = rVOpt.m_nShadowCursorFillMode;
-    m_eGlyphPositioningMode = rVOpt.m_eGlyphPositioningMode;
 }
 
 // Helper function for checking HTML-capabilities.
diff --git a/sw/source/core/inc/scriptinfo.hxx 
b/sw/source/core/inc/scriptinfo.hxx
index cd479034ed06..cfe9ef3e55fb 100644
--- a/sw/source/core/inc/scriptinfo.hxx
+++ b/sw/source/core/inc/scriptinfo.hxx
@@ -281,8 +281,6 @@ public:
             positions in the kerning array.
     @param  pKernArray
                 The printers kerning array. Optional.
-    @param  pScrArray
-                The screen kerning array. Optional.
     @param  nStt
                 Start referring to the paragraph.
     @param  nLen
@@ -291,7 +289,7 @@ public:
                 The value which has to be added to a kashida opportunity.
     @return The number of kashida opportunities in the given range
 */
-    sal_Int32 KashidaJustify( sal_Int32* pKernArray, sal_Int32* pScrArray,
+    sal_Int32 KashidaJustify( sal_Int32* pKernArray,
           TextFrameIndex nStt, TextFrameIndex nLen, tools::Long nSpaceAdd = 0) 
const;
 
 /** Clears array of kashidas marked as invalid
@@ -354,8 +352,6 @@ public:
                 The String
     @param  pKernArray
                 The printers kerning array. Optional.
-    @param  pScrArray
-                The screen kerning array. Optional.
     @param  nIdx
                 Start referring to the paragraph.
     @param  nLen
@@ -365,7 +361,7 @@ public:
     @return The number of extra spaces in the given range
 */
     static TextFrameIndex ThaiJustify( const OUString& rText, sal_Int32* 
pKernArray,
-                                  sal_Int32* pScrArray, TextFrameIndex nIdx,
+                                  TextFrameIndex nIdx,
                                   TextFrameIndex nLen,
                                   TextFrameIndex nNumberOfBlanks = 
TextFrameIndex(0),
                                   tools::Long nSpaceAdd = 0 );
@@ -374,7 +370,7 @@ public:
             TextFrameIndex nPos, TextFrameIndex nEnd, LanguageType aLang);
 
     static void CJKJustify( const OUString& rText, sal_Int32* pKernArray,
-                                  sal_Int32* pScrArray, TextFrameIndex nStt,
+                                  TextFrameIndex nStt,
                                   TextFrameIndex nLen, LanguageType aLang,
                                   tools::Long nSpaceAdd, bool bIsSpaceStop );
 
diff --git a/sw/source/core/text/itradj.cxx b/sw/source/core/text/itradj.cxx
index d664602bf3ce..a952ce7649c2 100644
--- a/sw/source/core/text/itradj.cxx
+++ b/sw/source/core/text/itradj.cxx
@@ -122,7 +122,7 @@ static bool lcl_CheckKashidaPositions( SwScriptInfo& rSI, 
SwTextSizeInfo& rInf,
     // total number of kashida positions, or the number of kashida positions 
after some positions
     // have been dropped.
     // Here we want the clean total, which is OK: We have called 
ClearKashidaInvalid() before.
-    rKashidas = rSI.KashidaJustify ( nullptr, nullptr, rItr.GetStart(), 
rItr.GetLength() );
+    rKashidas = rSI.KashidaJustify(nullptr, rItr.GetStart(), rItr.GetLength());
 
     if (rKashidas <= 0) // nothing to do
         return true;
@@ -147,7 +147,7 @@ static bool lcl_CheckKashidaPositions( SwScriptInfo& rSI, 
SwTextSizeInfo& rInf,
 
         if (nNext == TextFrameIndex(COMPLETE_STRING) || nNext > nEnd)
             nNext = nEnd;
-        sal_Int32 nKashidasInAttr = rSI.KashidaJustify ( nullptr, nullptr, 
nIdx, nNext - nIdx );
+        sal_Int32 nKashidasInAttr = rSI.KashidaJustify(nullptr, nIdx, nNext - 
nIdx);
         if (nKashidasInAttr > 0)
         {
             // Kashida glyph looks suspicious, skip Kashida justification
@@ -212,7 +212,7 @@ static bool lcl_CheckKashidaWidth ( SwScriptInfo& rSI, 
SwTextSizeInfo& rInf, SwT
 
             if (nNext == TextFrameIndex(COMPLETE_STRING) || nNext > nEnd)
                 nNext = nEnd;
-            sal_Int32 nKashidasInAttr = rSI.KashidaJustify ( nullptr, nullptr, 
nIdx, nNext - nIdx );
+            sal_Int32 nKashidasInAttr = rSI.KashidaJustify(nullptr, nIdx, 
nNext - nIdx);
 
             tools::Long nFontMinKashida = rInf.GetOut()->GetMinKashida();
             if ( nFontMinKashida && nKashidasInAttr > 0 && 
SwScriptInfo::IsArabicText( rInf.GetText(), nIdx, nNext - nIdx ) )
diff --git a/sw/source/core/text/porlay.cxx b/sw/source/core/text/porlay.cxx
index 3db5d2ab0ac3..bd9d6a0e143c 100644
--- a/sw/source/core/text/porlay.cxx
+++ b/sw/source/core/text/porlay.cxx
@@ -2183,7 +2183,6 @@ tools::Long SwScriptInfo::Compress(sal_Int32* pKernArray, 
TextFrameIndex nIdx, T
 // have been dropped, depending on the state of the m_KashidaInvalid set.
 
 sal_Int32 SwScriptInfo::KashidaJustify( sal_Int32* pKernArray,
-                                        sal_Int32* pScrArray,
                                         TextFrameIndex const nStt,
                                         TextFrameIndex const nLen,
                                         tools::Long nSpaceAdd ) const
@@ -2253,8 +2252,6 @@ sal_Int32 SwScriptInfo::KashidaJustify( sal_Int32* 
pKernArray,
             while ( nArrayPos < nArrayEnd )
             {
                 pKernArray[ sal_Int32(nArrayPos) ] += nKashAdd;
-                if ( pScrArray )
-                    pScrArray[ sal_Int32(nArrayPos) ] += nKashAdd;
                 ++nArrayPos;
             }
             nKashAdd += nSpaceAdd;
@@ -2442,7 +2439,7 @@ void SwScriptInfo::MarkKashidasInvalid(sal_Int32 const 
nCnt,
 }
 
 TextFrameIndex SwScriptInfo::ThaiJustify( const OUString& rText, sal_Int32* 
pKernArray,
-                                     sal_Int32* pScrArray, TextFrameIndex 
const nStt,
+                                     TextFrameIndex const nStt,
                                      TextFrameIndex const nLen,
                                      TextFrameIndex nNumberOfBlanks,
                                      tools::Long nSpaceAdd )
@@ -2474,7 +2471,6 @@ TextFrameIndex SwScriptInfo::ThaiJustify( const OUString& 
rText, sal_Int32* pKer
         }
 
         if ( pKernArray ) pKernArray[ nI ] += nSpaceSum;
-        if ( pScrArray ) pScrArray[ nI ] += nSpaceSum;
     }
 
     return nCnt;
@@ -2775,7 +2771,7 @@ TextFrameIndex SwScriptInfo::CountCJKCharacters(const 
OUString &rText,
 }
 
 void SwScriptInfo::CJKJustify( const OUString& rText, sal_Int32* pKernArray,
-                                     sal_Int32* pScrArray, TextFrameIndex 
const nStt,
+                                     TextFrameIndex const nStt,
                                      TextFrameIndex const nLen, LanguageType 
aLang,
                                      tools::Long nSpaceAdd, bool bIsSpaceStop )
 {
@@ -2798,8 +2794,6 @@ void SwScriptInfo::CJKJustify( const OUString& rText, 
sal_Int32* pKernArray,
                 nSpaceSum += nSpaceAdd;
         }
         pKernArray[ nI ] += nSpaceSum;
-        if ( pScrArray )
-            pScrArray[ nI ] += nSpaceSum;
     }
 }
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/source/core/text/portxt.cxx b/sw/source/core/text/portxt.cxx
index 7def7badcc7a..219036aa834d 100644
--- a/sw/source/core/text/portxt.cxx
+++ b/sw/source/core/text/portxt.cxx
@@ -113,7 +113,7 @@ static TextFrameIndex lcl_AddSpace(const SwTextSizeInfo 
&rInf,
     {
         if ( SwScriptInfo::IsArabicText( *pStr, nPos, nEnd - nPos ) && 
pSI->CountKashida() )
         {
-            const sal_Int32 nKashRes = pSI->KashidaJustify( nullptr, nullptr, 
nPos, nEnd - nPos );
+            const sal_Int32 nKashRes = pSI->KashidaJustify(nullptr, nPos, nEnd 
- nPos);
             // i60591: need to check result of KashidaJustify
             // determine if kashida justification is applicable
             if (nKashRes != -1)
@@ -129,7 +129,7 @@ static TextFrameIndex lcl_AddSpace(const SwTextSizeInfo 
&rInf,
 
         if ( LANGUAGE_THAI == aLang )
         {
-            nCnt = SwScriptInfo::ThaiJustify( *pStr, nullptr, nullptr, nPos, 
nEnd - nPos );
+            nCnt = SwScriptInfo::ThaiJustify(*pStr, nullptr, nPos, nEnd - 
nPos);
 
             const SwLinePortion* pPor = rPor.GetNextPortion();
             if ( pPor && ( pPor->IsKernPortion() ||
diff --git a/sw/source/core/txtnode/fntcache.cxx 
b/sw/source/core/txtnode/fntcache.cxx
index 2c5f81a63390..b99408177d0a 100644
--- a/sw/source/core/txtnode/fntcache.cxx
+++ b/sw/source/core/txtnode/fntcache.cxx
@@ -855,50 +855,6 @@ static void lcl_DrawLineForWrongListData(
         rInf.GetOut().Pop();
 }
 
-namespace
-{
-    void AdjustKernArray(GlyphPositioningMode eGlyphPositioningMode, sal_Int32 
i, tools::Long& rScrPos,
-                         sal_Unicode cChPrev, sal_Unicode nCh,
-                         const std::vector<sal_Int32>& rScrArray, 
std::vector<sal_Int32>& rKernArray,
-                         int nMul)
-    {
-        tools::Long nScr = rScrArray[i] - rScrArray[i - 1];
-        switch (eGlyphPositioningMode)
-        {
-            case GlyphPositioningMode::Layout:  // <- glyph positioning stable 
during editing,
-                                                // but at ~90% screen zoom 
rendering will
-                                                // start to show kerning 
problems
-            case GlyphPositioningMode::LayoutAndMatchRender: // <- glyph 
positioning stable during editing,
-                                                                // and should 
render nicely at sane zoom levels
-                rScrPos = rKernArray[i - 1] + nScr;
-                // just accept the print layout positions, this is what 
editeng does
-                // 
https://freddie.witherden.org/pages/font-rasterisation/#application-requirements
-                break;
-            case GlyphPositioningMode::Classic: // <- layout unstable during 
editing, fairly arbitrary glyph
-                                                // positioning depends on zoom
-            {
-                // https://wiki.openoffice.org/wiki/Writer/WYSIWYG
-                if (nCh == CH_BLANK)
-                    rScrPos = rKernArray[i - 1] + nScr;
-                else
-                {
-                    if (cChPrev == CH_BLANK || cChPrev == '-')
-                        rScrPos = rKernArray[i - 1] + nScr;
-                    else
-                    {
-                        rScrPos += nScr;
-
-                        const int nDiv = nMul+1;
-                        rScrPos = (nMul * rScrPos + rKernArray[i]) / nDiv;
-                    }
-                }
-                rKernArray[i - 1] = rScrPos - nScr;
-                break;
-            }
-        }
-    }
-}
-
 void SwFntObj::GetTextArray(const OutputDevice& rDevice, const OUString& rStr, 
std::vector<sal_Int32>& rDXAry,
                             sal_Int32 nIndex, sal_Int32 nLen, bool bCaching)
 {
@@ -1393,7 +1349,7 @@ void SwFntObj::DrawText( SwDrawTextInfo &rInf )
 
                     if (!MsLangId::isKorean(aLang))
                     {
-                        SwScriptInfo::CJKJustify( rInf.GetText(), 
aKernArray.data(), nullptr,
+                        SwScriptInfo::CJKJustify( rInf.GetText(), 
aKernArray.data(),
                                 rInf.GetIdx(), rInf.GetLen(), aLang, 
nSpaceAdd, rInf.IsSpaceStop() );
 
                         bSpecialJust = true;
@@ -1407,7 +1363,7 @@ void SwFntObj::DrawText( SwDrawTextInfo &rInf )
                     if ( SwScriptInfo::IsArabicText( rInf.GetText(), 
rInf.GetIdx(), rInf.GetLen() ) )
                     {
                         if ( pSI && pSI->CountKashida() &&
-                            pSI->KashidaJustify( aKernArray.data(), nullptr, 
rInf.GetIdx(),
+                            pSI->KashidaJustify( aKernArray.data(), 
rInf.GetIdx(),
                                                  rInf.GetLen(), nSpaceAdd ) != 
-1 )
                         {
                             bSpecialJust = true;
@@ -1425,7 +1381,7 @@ void SwFntObj::DrawText( SwDrawTextInfo &rInf )
                     {
                         // Use rInf.GetSpace() because it has more precision 
than
                         // nSpaceAdd:
-                        SwScriptInfo::ThaiJustify( rInf.GetText(), 
aKernArray.data(), nullptr,
+                        SwScriptInfo::ThaiJustify( rInf.GetText(), 
aKernArray.data(),
                                                    rInf.GetIdx(), 
rInf.GetLen(),
                                                    rInf.GetNumberOfBlanks(),
                                                    rInf.GetSpace() );
@@ -1534,11 +1490,9 @@ void SwFntObj::DrawText( SwDrawTextInfo &rInf )
 
     else
     {
-        GlyphPositioningMode eGlyphPositioningMode = 
rInf.GetShell()->GetViewOptions()->GetGlyphPositioningMode();
         const bool 
bOrigTextRenderModeForResolutionIndependentLayout(rInf.GetOut().GetTextRenderModeForResolutionIndependentLayout());
-
         // set text render mode to suit use of resolution independent text 
layout
-        
rInf.GetOut().SetTextRenderModeForResolutionIndependentLayout(eGlyphPositioningMode
 == GlyphPositioningMode::LayoutAndMatchRender);
+        rInf.GetOut().SetTextRenderModeForResolutionIndependentLayout(true);
 
         const OUString* pStr = &rInf.GetText();
 
@@ -1550,11 +1504,6 @@ void SwFntObj::DrawText( SwDrawTextInfo &rInf )
         std::vector<sal_Int32> aKernArray;
         CreateScrFont( *rInf.GetShell(), rInf.GetOut() );
 
-        // get screen array
-        std::vector<sal_Int32> aScrArray;
-        GetTextArray(rInf.GetOut(), rInf.GetText(), aScrArray,
-                     sal_Int32(rInf.GetIdx()), sal_Int32(rInf.GetLen()), true);
-
         // OLE: no printer available
         // OSL_ENSURE( pPrinter, "DrawText needs pPrinter" )
         if ( m_pPrinter )
@@ -1570,12 +1519,8 @@ void SwFntObj::DrawText( SwDrawTextInfo &rInf )
         }
         else
         {
-#ifndef NDEBUG
             GetTextArray(rInf.GetOut(), rInf.GetText(), aKernArray,
-                    sal_Int32(rInf.GetIdx()), sal_Int32(rInf.GetLen()), false);
-            assert(aKernArray == aScrArray);
-#endif
-            aKernArray = aScrArray;
+                    sal_Int32(rInf.GetIdx()), sal_Int32(rInf.GetLen()), true);
         }
 
         // Modify Printer and ScreenArrays for special justifications
@@ -1593,10 +1538,6 @@ void SwFntObj::DrawText( SwDrawTextInfo &rInf )
                  pSI && pSI->CountCompChg() &&
                  lcl_IsMonoSpaceFont( rInf.GetOut() ) )
             {
-                Point aTmpPos( aTextOriginPos );
-                pSI->Compress( aScrArray.data(), rInf.GetIdx(), rInf.GetLen(),
-                               rInf.GetKanaComp(),
-                               
o3tl::narrowing<sal_uInt16>(m_aFont.GetFontSize().Height()), 
lcl_IsFullstopCentered( rInf.GetOut() ), &aTmpPos );
                 pSI->Compress( aKernArray.data(), rInf.GetIdx(), rInf.GetLen(),
                                rInf.GetKanaComp(),
                                
o3tl::narrowing<sal_uInt16>(m_aFont.GetFontSize().Height()), 
lcl_IsFullstopCentered( rInf.GetOut() ), &aTextOriginPos );
@@ -1609,7 +1550,7 @@ void SwFntObj::DrawText( SwDrawTextInfo &rInf )
 
                 if (!MsLangId::isKorean(aLang))
                 {
-                    SwScriptInfo::CJKJustify( rInf.GetText(), 
aKernArray.data(), aScrArray.data(),
+                    SwScriptInfo::CJKJustify( rInf.GetText(), 
aKernArray.data(),
                             rInf.GetIdx(), rInf.GetLen(), aLang, nSpaceAdd, 
rInf.IsSpaceStop() );
 
                     nSpaceAdd = 0;
@@ -1622,7 +1563,7 @@ void SwFntObj::DrawText( SwDrawTextInfo &rInf )
                 if ( SwScriptInfo::IsArabicText( rInf.GetText(), 
rInf.GetIdx(), rInf.GetLen() ) )
                 {
                     if ( pSI && pSI->CountKashida() &&
-                         pSI->KashidaJustify( aKernArray.data(), 
aScrArray.data(), rInf.GetIdx(),
+                         pSI->KashidaJustify( aKernArray.data(), rInf.GetIdx(),
                                               rInf.GetLen(), nSpaceAdd ) != -1 
)
                         nSpaceAdd = 0;
                     else
@@ -1638,7 +1579,7 @@ void SwFntObj::DrawText( SwDrawTextInfo &rInf )
                 if ( LANGUAGE_THAI == aLang )
                 {
                     SwScriptInfo::ThaiJustify( rInf.GetText(), 
aKernArray.data(),
-                                               aScrArray.data(), rInf.GetIdx(),
+                                               rInf.GetIdx(),
                                                rInf.GetLen(),
                                                rInf.GetNumberOfBlanks(),
                                                rInf.GetSpace() );
@@ -1649,8 +1590,6 @@ void SwFntObj::DrawText( SwDrawTextInfo &rInf )
             }
         }
 
-        tools::Long nScrPos = aScrArray[ 0 ];
-
         if( bBullet )
         {
             // !!! HACK !!!
@@ -1722,10 +1661,6 @@ void SwFntObj::DrawText( SwDrawTextInfo &rInf )
         }
         else
         {
-            // In case of Pair Kerning the printer influence on the positioning
-            // grows
-            const int nMul = m_pPrtFont->GetKerning() != FontKerning::NONE ? 1 
: 3;
-
             // nSpaceSum contains the sum of the intermediate space distributed
             // among Spaces by the Justification.
             // The Spaces themselves will be positioned in the middle of the
@@ -1745,7 +1680,6 @@ void SwFntObj::DrawText( SwDrawTextInfo &rInf )
             for (sal_Int32 i = 1; i < sal_Int32(nCnt); ++i, nKernSum += 
rInf.GetKern())
             {
                 sal_Unicode nCh = rInf.GetText()[sal_Int32(rInf.GetIdx()) + i];
-                AdjustKernArray(eGlyphPositioningMode, i, nScrPos, cChPrev, 
nCh, aScrArray, aKernArray, nMul);
 
                 // Apply SpaceSum
                 if (cChPrev == CH_BLANK)
@@ -2055,45 +1989,7 @@ Size SwFntObj::GetTextSize( SwDrawTextInfo& rInf )
         else
             rInf.SetKanaDiff( 0 );
 
-        if ( rInf.GetKanaDiff() )
-        {
-            aTextSize.setWidth(aKernArray[sal_Int32(nLn) - 1]);
-        }
-        else
-        {
-            GlyphPositioningMode eGlyphPositioningMode = 
rInf.GetShell()->GetViewOptions()->GetGlyphPositioningMode();
-            if (eGlyphPositioningMode == GlyphPositioningMode::Classic)
-            {
-                std::vector<sal_Int32> aScrArray;
-                GetTextArray(rInf.GetOut(), rInf.GetText(), aScrArray,
-                            sal_Int32(rInf.GetIdx()), 
sal_Int32(rInf.GetLen()), false);
-                tools::Long nScrPos = aScrArray[ 0 ];
-                TextFrameIndex nCnt(rInf.GetText().getLength());
-                if ( nCnt < rInf.GetIdx() )
-                    nCnt = TextFrameIndex(0); // assert???
-                else
-                    nCnt = nCnt - rInf.GetIdx();
-                nCnt = std::min(nCnt, nLn);
-                sal_Unicode nChPrev = rInf.GetText()[ sal_Int32(rInf.GetIdx()) 
];
-
-                // In case of Pair Kerning the printer influence on the 
positioning
-                // grows
-                const int nMul = m_pPrtFont->GetKerning() != FontKerning::NONE 
? 1 : 3;
-
-                for (sal_Int32 i = 1; i < sal_Int32(nCnt); i++)
-                {
-                    sal_Unicode nCh = rInf.GetText()[sal_Int32(rInf.GetIdx()) 
+ i];
-                    AdjustKernArray(eGlyphPositioningMode, i, nScrPos, 
nChPrev, nCh, aScrArray, aKernArray, nMul);
-                    nChPrev = nCh;
-                }
-
-                aTextSize.setWidth( nScrPos );
-            }
-            else
-            {
-                aTextSize.setWidth(aKernArray[sal_Int32(nLn) - 1]);
-            }
-        }
+        aTextSize.setWidth(aKernArray[sal_Int32(nLn) - 1]);
     }
     else
     {
@@ -2177,7 +2073,7 @@ TextFrameIndex 
SwFntObj::GetModelPositionForViewPoint(SwDrawTextInfo &rInf)
 
             if (!MsLangId::isKorean(aLang))
             {
-                SwScriptInfo::CJKJustify( rInf.GetText(), aKernArray.data(), 
nullptr,
+                SwScriptInfo::CJKJustify( rInf.GetText(), aKernArray.data(),
                         rInf.GetIdx(), rInf.GetLen(), aLang, nSpaceAdd, 
rInf.IsSpaceStop() );
 
                 nSpaceAdd = 0;
@@ -2191,7 +2087,7 @@ TextFrameIndex 
SwFntObj::GetModelPositionForViewPoint(SwDrawTextInfo &rInf)
             if ( SwScriptInfo::IsArabicText( rInf.GetText(), rInf.GetIdx(), 
rInf.GetLen() ) )
             {
                 if ( pSI && pSI->CountKashida() &&
-                    pSI->KashidaJustify( aKernArray.data(), nullptr, 
rInf.GetIdx(), rInf.GetLen(),
+                    pSI->KashidaJustify( aKernArray.data(), rInf.GetIdx(), 
rInf.GetLen(),
                                          nSpaceAdd ) != -1 )
                     nSpaceAdd = 0;
             }
@@ -2204,7 +2100,7 @@ TextFrameIndex 
SwFntObj::GetModelPositionForViewPoint(SwDrawTextInfo &rInf)
 
             if ( LANGUAGE_THAI == aLang )
             {
-                SwScriptInfo::ThaiJustify( rInf.GetText(), aKernArray.data(), 
nullptr,
+                SwScriptInfo::ThaiJustify( rInf.GetText(), aKernArray.data(),
                                            rInf.GetIdx(), rInf.GetLen(),
                                            rInf.GetNumberOfBlanks(),
                                            rInf.GetSpace() );
diff --git a/sw/source/ui/config/optpage.cxx b/sw/source/ui/config/optpage.cxx
index 6cfe9b99d1c6..30a3c4cac6e4 100644
--- a/sw/source/ui/config/optpage.cxx
+++ b/sw/source/ui/config/optpage.cxx
@@ -91,7 +91,6 @@ SwContentOptPage::SwContentOptPage(weld::Container* pPage, 
weld::DialogControlle
     , m_xVRulerRightCBox(m_xBuilder->weld_check_button("vrulerright"))
     , m_xVMetric(m_xBuilder->weld_combo_box("vrulercombobox"))
     , m_xSmoothCBox(m_xBuilder->weld_check_button("smoothscroll"))
-    , m_xGlyphPosModeLB(m_xBuilder->weld_combo_box("glyphposmode"))
     , m_xGrfCB(m_xBuilder->weld_check_button("graphics"))
     , m_xTableCB(m_xBuilder->weld_check_button("tables"))
     , m_xDrwCB(m_xBuilder->weld_check_button("drawings"))
@@ -220,7 +219,6 @@ void SwContentOptPage::Reset(const SfxItemSet* rSet)
         m_xShowChangesInMargin->set_active(pElemAttr->m_bShowChangesInMargin);
         m_xFieldHiddenCB->set_active( pElemAttr->m_bFieldHiddenText );
         m_xFieldHiddenParaCB->set_active( pElemAttr->m_bShowHiddenPara );
-        
m_xGlyphPosModeLB->set_active(static_cast<int>(pElemAttr->m_eGlyphPositioningMode));
     }
     m_xMetricLB->set_active(-1);
     lcl_SelectMetricLB(*m_xMetricLB, SID_ATTR_METRIC, *rSet);
@@ -248,7 +246,6 @@ bool SwContentOptPage::FillItemSet(SfxItemSet* rSet)
     aElem.m_bShowChangesInMargin  = m_xShowChangesInMargin->get_active();
     aElem.m_bFieldHiddenText      = m_xFieldHiddenCB->get_active();
     aElem.m_bShowHiddenPara       = m_xFieldHiddenParaCB->get_active();
-    aElem.m_eGlyphPositioningMode = 
static_cast<GlyphPositioningMode>(m_xGlyphPosModeLB->get_active());
 
     bool bRet = !pOldAttr || aElem != *pOldAttr;
     if(bRet)
diff --git a/sw/source/uibase/config/cfgitems.cxx 
b/sw/source/uibase/config/cfgitems.cxx
index 39f4d43d63bf..e32c86e14c52 100644
--- a/sw/source/uibase/config/cfgitems.cxx
+++ b/sw/source/uibase/config/cfgitems.cxx
@@ -104,7 +104,6 @@ SwElemItem::SwElemItem() :
     m_bShowChangesInMargin =
     m_bFieldHiddenText =
     m_bShowHiddenPara  = false;
-    m_eGlyphPositioningMode = GlyphPositioningMode::Classic;
 }
 
 SwElemItem::SwElemItem(const SwViewOption& rVOpt) :
@@ -124,7 +123,6 @@ SwElemItem::SwElemItem(const SwViewOption& rVOpt) :
     m_bShowChangesInMargin = rVOpt.IsShowChangesInMargin();
     m_bFieldHiddenText = rVOpt.IsShowHiddenField();
     m_bShowHiddenPara  = rVOpt.IsShowHiddenPara();
-    m_eGlyphPositioningMode = rVOpt.GetGlyphPositioningMode();
 }
 
 SwElemItem* SwElemItem::Clone( SfxItemPool* ) const
@@ -151,8 +149,7 @@ bool SwElemItem::operator==( const SfxPoolItem& rAttr ) 
const
                 m_bTreatSubOutlineLevelsAsContent == 
rItem.m_bTreatSubOutlineLevelsAsContent &&
                 m_bShowChangesInMargin  == rItem.m_bShowChangesInMargin &&
                 m_bFieldHiddenText == rItem.m_bFieldHiddenText &&
-                m_bShowHiddenPara  == rItem.m_bShowHiddenPara &&
-                m_eGlyphPositioningMode == rItem.m_eGlyphPositioningMode);
+                m_bShowHiddenPara  == rItem.m_bShowHiddenPara);
 }
 
 void SwElemItem::FillViewOptions( SwViewOption& rVOpt) const
@@ -172,7 +169,6 @@ void SwElemItem::FillViewOptions( SwViewOption& rVOpt) const
     rVOpt.SetShowChangesInMargin( m_bShowChangesInMargin );
     rVOpt.SetShowHiddenField(m_bFieldHiddenText );
     rVOpt.SetShowHiddenPara(m_bShowHiddenPara );
-    rVOpt.SetGlyphPositioningMode(m_eGlyphPositioningMode);
 }
 
 // CTOR for empty Item
diff --git a/sw/source/uibase/config/usrpref.cxx 
b/sw/source/uibase/config/usrpref.cxx
index ed33926492eb..45590d5e0b8a 100644
--- a/sw/source/uibase/config/usrpref.cxx
+++ b/sw/source/uibase/config/usrpref.cxx
@@ -259,22 +259,21 @@ Sequence<OUString> SwLayoutViewConfig::GetPropertyNames() 
const
         "Window/HorizontalRulerUnit",           // 6
         "Window/VerticalRulerUnit",             // 7
         "Window/SmoothScroll",                  // 8
-        "Window/GlyphPositioningMode",          // 9
-        "Zoom/Value",                           //10
-        "Zoom/Type",                            //11
-        "Other/IsAlignMathObjectsToBaseline",   //12
-        "Other/MeasureUnit",                    //13
+        "Zoom/Value",                           // 9
+        "Zoom/Type",                            //10
+        "Other/IsAlignMathObjectsToBaseline",   //11
+        "Other/MeasureUnit",                    //12
         // below properties are not available in WriterWeb
-        "Other/TabStop",                        //14
-        "Window/IsVerticalRulerRight",          //15
-        "ViewLayout/Columns",                   //16
-        "ViewLayout/BookMode",                  //17
-        "Other/IsSquaredPageMode",              //18
-        "Other/ApplyCharUnit",                  //19
-        "Window/ShowScrollBarTips",             //20
-        "ViewLayout/HideWhitespace",            //21
+        "Other/TabStop",                        //13
+        "Window/IsVerticalRulerRight",          //14
+        "ViewLayout/Columns",                   //15
+        "ViewLayout/BookMode",                  //16
+        "Other/IsSquaredPageMode",              //17
+        "Other/ApplyCharUnit",                  //18
+        "Window/ShowScrollBarTips",             //19
+        "ViewLayout/HideWhitespace",            //20
     };
-    const int nCount = m_bWeb ? 14 : 22;
+    const int nCount = m_bWeb ? 13 : 21;
     Sequence<OUString> aNames(nCount);
     OUString* pNames = aNames.getArray();
     for(int i = 0; i < nCount; i++)
@@ -325,19 +324,18 @@ void SwLayoutViewConfig::ImplCommit()
                     rVal <<= 
static_cast<sal_Int32>(m_rParent.m_eVScrollMetric);                     // 
"Window/VerticalRulerUnit"
             break;
             case  8: rVal <<= m_rParent.IsSmoothScroll(); break;               
       // "Window/SmoothScroll",
-            case  9: rVal <<= 
static_cast<sal_Int32>(m_rParent.GetGlyphPositioningMode()); break;  // 
"Window/GlyphPositioningMode",
-            case 10: rVal <<= static_cast<sal_Int32>(m_rParent.GetZoom()); 
break;                  // "Zoom/Value",
-            case 11: rVal <<= static_cast<sal_Int32>(m_rParent.GetZoomType()); 
break;              // "Zoom/Type",
-            case 12: rVal <<= m_rParent.IsAlignMathObjectsToBaseline(); break; 
       // "Other/IsAlignMathObjectsToBaseline"
-            case 13: rVal <<= static_cast<sal_Int32>(m_rParent.GetMetric()); 
break;                // "Other/MeasureUnit",
-            case 14: rVal <<= m_rParent.GetDefTabInMm100(); break;// 
"Other/TabStop",
-            case 15: rVal <<= m_rParent.IsVRulerRight(); break;                
       // "Window/IsVerticalRulerRight",
-            case 16: rVal <<= 
static_cast<sal_Int32>(m_rParent.GetViewLayoutColumns()); break;     // 
"ViewLayout/Columns",
-            case 17: rVal <<= m_rParent.IsViewLayoutBookMode(); break;         
       // "ViewLayout/BookMode",
-            case 18: rVal <<= m_rParent.IsSquaredPageMode(); break;            
       // "Other/IsSquaredPageMode",
-            case 19: rVal <<= m_rParent.IsApplyCharUnit(); break;              
       // "Other/ApplyCharUnit",
-            case 20: rVal <<= m_rParent.IsShowScrollBarTips(); break;          
       // "Window/ShowScrollBarTips",
-            case 21: rVal <<= m_rParent.IsHideWhitespaceMode(); break;         
       // "ViewLayout/HideWhitespace"
+            case  9: rVal <<= static_cast<sal_Int32>(m_rParent.GetZoom()); 
break;                  // "Zoom/Value",
+            case 10: rVal <<= static_cast<sal_Int32>(m_rParent.GetZoomType()); 
break;              // "Zoom/Type",
+            case 11: rVal <<= m_rParent.IsAlignMathObjectsToBaseline(); break; 
       // "Other/IsAlignMathObjectsToBaseline"
+            case 12: rVal <<= static_cast<sal_Int32>(m_rParent.GetMetric()); 
break;                // "Other/MeasureUnit",
+            case 13: rVal <<= m_rParent.GetDefTabInMm100(); break;// 
"Other/TabStop",
+            case 14: rVal <<= m_rParent.IsVRulerRight(); break;                
       // "Window/IsVerticalRulerRight",
+            case 15: rVal <<= 
static_cast<sal_Int32>(m_rParent.GetViewLayoutColumns()); break;     // 
"ViewLayout/Columns",
+            case 16: rVal <<= m_rParent.IsViewLayoutBookMode(); break;         
       // "ViewLayout/BookMode",
+            case 17: rVal <<= m_rParent.IsSquaredPageMode(); break;            
       // "Other/IsSquaredPageMode",
+            case 18: rVal <<= m_rParent.IsApplyCharUnit(); break;              
       // "Other/ApplyCharUnit",
+            case 19: rVal <<= m_rParent.IsShowScrollBarTips(); break;          
       // "Window/ShowScrollBarTips",
+            case 20: rVal <<= m_rParent.IsHideWhitespaceMode(); break;         
       // "ViewLayout/HideWhitespace"
         }
     }
     PutProperties(aNames, aValues);
@@ -382,19 +380,18 @@ void SwLayoutViewConfig::Load()
                 }
                 break;
                 case  8: m_rParent.SetSmoothScroll(bSet); break;// 
"Window/SmoothScroll",
-                case  9: 
m_rParent.SetGlyphPositioningMode(static_cast<GlyphPositioningMode>(nInt32Val));
 break;// "Window/GlyphPositioningMode",
-                case 10: m_rParent.SetZoom( static_cast< sal_uInt16 
>(nInt32Val) ); break;// "Zoom/Value",
-                case 11: m_rParent.SetZoomType( static_cast< SvxZoomType 
>(nInt32Val) ); break;// "Zoom/Type",
-                case 12: m_rParent.SetAlignMathObjectsToBaseline(bSet, true); 
break;// "Other/IsAlignMathObjectsToBaseline"
-                case 13: 
m_rParent.SetMetric(static_cast<FieldUnit>(nInt32Val), true); break;// 
"Other/MeasureUnit",
-                case 14: m_rParent.SetDefTabInMm100(nInt32Val, true); break;// 
"Other/TabStop",
-                case 15: m_rParent.SetVRulerRight(bSet); break;// 
"Window/IsVerticalRulerRight",
-                case 16: m_rParent.SetViewLayoutColumns( 
o3tl::narrowing<sal_uInt16>(nInt32Val) ); break;// "ViewLayout/Columns",
-                case 17: m_rParent.SetViewLayoutBookMode(bSet); break;// 
"ViewLayout/BookMode",
-                case 18: m_rParent.SetDefaultPageMode(bSet,true); break;// 
"Other/IsSquaredPageMode",
-                case 19: m_rParent.SetApplyCharUnit(bSet, true); break;// 
"Other/ApplyUserChar"
-                case 20: m_rParent.SetShowScrollBarTips(bSet); break;// 
"Window/ShowScrollBarTips",
-                case 21: m_rParent.SetHideWhitespaceMode(bSet); break;// 
"ViewLayout/HideWhitespace"
+                case  9: m_rParent.SetZoom( static_cast< sal_uInt16 
>(nInt32Val) ); break;// "Zoom/Value",
+                case 10: m_rParent.SetZoomType( static_cast< SvxZoomType 
>(nInt32Val) ); break;// "Zoom/Type",
+                case 11: m_rParent.SetAlignMathObjectsToBaseline(bSet, true); 
break;// "Other/IsAlignMathObjectsToBaseline"
+                case 12: 
m_rParent.SetMetric(static_cast<FieldUnit>(nInt32Val), true); break;// 
"Other/MeasureUnit",
+                case 13: m_rParent.SetDefTabInMm100(nInt32Val, true); break;// 
"Other/TabStop",
+                case 14: m_rParent.SetVRulerRight(bSet); break;// 
"Window/IsVerticalRulerRight",
+                case 15: m_rParent.SetViewLayoutColumns( 
o3tl::narrowing<sal_uInt16>(nInt32Val) ); break;// "ViewLayout/Columns",
+                case 16: m_rParent.SetViewLayoutBookMode(bSet); break;// 
"ViewLayout/BookMode",
+                case 17: m_rParent.SetDefaultPageMode(bSet,true); break;// 
"Other/IsSquaredPageMode",
+                case 18: m_rParent.SetApplyCharUnit(bSet, true); break;// 
"Other/ApplyUserChar"
+                case 29: m_rParent.SetShowScrollBarTips(bSet); break;// 
"Window/ShowScrollBarTips",
+                case 20: m_rParent.SetHideWhitespaceMode(bSet); break;// 
"ViewLayout/HideWhitespace"
             }
         }
     }
diff --git a/sw/source/uibase/config/viewopt.cxx 
b/sw/source/uibase/config/viewopt.cxx
index 12a7336f62ad..66ea4daa05f4 100644
--- a/sw/source/uibase/config/viewopt.cxx
+++ b/sw/source/uibase/config/viewopt.cxx
@@ -166,7 +166,6 @@ SwViewOption::SwViewOption() :
     m_nPagePreviewRow( 1 ),
     m_nPagePreviewCol( 2 ),
     m_nShadowCursorFillMode( SwFillMode::Tab ),
-    m_eGlyphPositioningMode( GlyphPositioningMode::Classic ),
     m_bReadonly(false),
     m_bStarOneSetting(false),
     m_bIsPagePreview(false),
@@ -254,7 +253,6 @@ SwViewOption::SwViewOption(const SwViewOption& rVOpt)
     m_aRetouchColor  = rVOpt.GetRetoucheColor();
     m_sSymbolFont     = rVOpt.m_sSymbolFont;
     m_nShadowCursorFillMode = rVOpt.m_nShadowCursorFillMode;
-    m_eGlyphPositioningMode = rVOpt.m_eGlyphPositioningMode;
     m_bStarOneSetting = rVOpt.m_bStarOneSetting;
     mbBookView      = rVOpt.mbBookView;
     mbBrowseMode    = rVOpt.mbBrowseMode;
@@ -297,7 +295,6 @@ SwViewOption& SwViewOption::operator=( const SwViewOption 
&rVOpt )
     m_aRetouchColor  = rVOpt.GetRetoucheColor();
     m_sSymbolFont     = rVOpt.m_sSymbolFont;
     m_nShadowCursorFillMode = rVOpt.m_nShadowCursorFillMode;
-    m_eGlyphPositioningMode = rVOpt.m_eGlyphPositioningMode;
     m_bStarOneSetting = rVOpt.m_bStarOneSetting;
     mbBookView      = rVOpt.mbBookView;
     mbBrowseMode    = rVOpt.mbBrowseMode;
diff --git a/sw/source/uibase/inc/cfgitems.hxx 
b/sw/source/uibase/inc/cfgitems.hxx
index 18ffc5c9b40b..34ffa2d24e12 100644
--- a/sw/source/uibase/inc/cfgitems.hxx
+++ b/sw/source/uibase/inc/cfgitems.hxx
@@ -35,7 +35,6 @@ class SwViewShell;
 class SwViewOption;
 class SwContentOptPage;
 class SwShdwCursorOptionsTabPage;
-enum class GlyphPositioningMode;
 enum class SwFillMode;
 
 /// Item for settings dialog - document view
@@ -85,8 +84,6 @@ class SW_DLLPUBLIC SwElemItem final : public SfxPoolItem
     bool m_bFieldHiddenText   :1;
     bool m_bShowHiddenPara    :1;
 
-    GlyphPositioningMode m_eGlyphPositioningMode;
-
     friend class SwContentOptPage;
 
 public:
diff --git a/sw/source/uibase/inc/optpage.hxx b/sw/source/uibase/inc/optpage.hxx
index e7a6fe34b1fb..99e24ed7f487 100644
--- a/sw/source/uibase/inc/optpage.hxx
+++ b/sw/source/uibase/inc/optpage.hxx
@@ -42,7 +42,6 @@ class SwContentOptPage final : public SfxTabPage
     std::unique_ptr<weld::CheckButton> m_xVRulerRightCBox;
     std::unique_ptr<weld::ComboBox> m_xVMetric;
     std::unique_ptr<weld::CheckButton> m_xSmoothCBox;
-    std::unique_ptr<weld::ComboBox> m_xGlyphPosModeLB;
 
     std::unique_ptr<weld::CheckButton> m_xGrfCB;
     std::unique_ptr<weld::CheckButton> m_xTableCB;
diff --git a/sw/uiconfig/swriter/ui/viewoptionspage.ui 
b/sw/uiconfig/swriter/ui/viewoptionspage.ui
index e74d9d270b39..b3e071bf04ec 100644
--- a/sw/uiconfig/swriter/ui/viewoptionspage.ui
+++ b/sw/uiconfig/swriter/ui/viewoptionspage.ui
@@ -357,7 +357,7 @@
                 <property name="label-xalign">0</property>
                 <property name="shadow-type">none</property>
                 <child>
-                  <!-- n-columns=1 n-rows=3 -->
+                  <!-- n-columns=1 n-rows=2 -->
                   <object class="GtkGrid" id="grid4">
                     <property name="visible">True</property>
                     <property name="can-focus">False</property>
@@ -494,49 +494,6 @@
                         <property name="top-attach">0</property>
                       </packing>
                     </child>
-                    <child>
-                      <object class="GtkBox">
-                        <property name="visible">True</property>
-                        <property name="can-focus">False</property>
-                        <property name="spacing">12</property>
-                        <child>
-                          <object class="GtkLabel" id="glyphposlabel">
-                            <property name="visible">True</property>
-                            <property name="can-focus">False</property>
-                            <property name="label" translatable="yes" 
context="viewoptionspage|glyphposlabel">Glyph positioning:</property>
-                            <property name="use-underline">True</property>
-                            <property 
name="mnemonic-widget">glyphposmode</property>
-                          </object>
-                          <packing>
-                            <property name="expand">False</property>
-                            <property name="fill">True</property>
-                            <property name="position">0</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <object class="GtkComboBoxText" id="glyphposmode">
-                            <property name="visible">True</property>
-                            <property name="can-focus">False</property>
-                            <property name="hexpand">True</property>
-                            <property name="active">0</property>
-                            <items>
-                              <item translatable="yes" 
context="viewoptionspage|glyphposmode">Classic</item>
-                              <item translatable="yes" 
context="viewoptionspage|glyphposmode">Layout</item>
-                              <item translatable="yes" 
context="viewoptionspage|glyphposmode">Layout &amp; Match Render</item>
-                            </items>
-                          </object>
-                          <packing>
-                            <property name="expand">False</property>
-                            <property name="fill">True</property>
-                            <property name="position">1</property>
-                          </packing>
-                        </child>
-                      </object>
-                      <packing>
-                        <property name="left-attach">0</property>
-                        <property name="top-attach">2</property>
-                      </packing>
-                    </child>
                   </object>
                 </child>
                 <child type="label">
@@ -714,7 +671,6 @@
     <widgets>
       <widget name="vruler"/>
       <widget name="hruler"/>
-      <widget name="glyphposlabel"/>
       <widget name="measureunitlabel"/>
     </widgets>
   </object>

Reply via email to