commit a3fd3a09f1aa0b6003fc3cf033e970bb7547a983
Author: Jean-Marc Lasgouttes <[email protected]>
Date:   Fri Dec 17 11:12:54 2021 +0100

    Add UI for selecting backing store drawing strategy
    
    The checkbox is hidden when backing store is enforced (wayland,
    macOS). In practice, only X11 and Windows users will see it ; I only
    have evidence of X11 people needing it, I can hide it for Windows
    users too if necessary.
    
    Fixes bug #12119.
---
 src/frontends/qt/GuiPrefs.cpp        |    5 +++++
 src/frontends/qt/ui/PrefDisplayUi.ui |   12 +++++++++++-
 2 files changed, 16 insertions(+), 1 deletions(-)

diff --git a/src/frontends/qt/GuiPrefs.cpp b/src/frontends/qt/GuiPrefs.cpp
index c1be9b8..75deb7c 100644
--- a/src/frontends/qt/GuiPrefs.cpp
+++ b/src/frontends/qt/GuiPrefs.cpp
@@ -1324,6 +1324,7 @@ PrefDisplay::PrefDisplay(GuiPreferences * form)
        connect(previewSizeSB, SIGNAL(valueChanged(double)), this, 
SIGNAL(changed()));
        connect(paragraphMarkerCB, SIGNAL(toggled(bool)), this, 
SIGNAL(changed()));
        connect(ctAdditionsUnderlinedCB, SIGNAL(toggled(bool)), this, 
SIGNAL(changed()));
+       connect(ctUseBackingstoreCB, SIGNAL(toggled(bool)), this, 
SIGNAL(changed()));
 }
 
 
@@ -1351,6 +1352,8 @@ void PrefDisplay::applyRC(LyXRC & rc) const
        rc.preview_scale_factor = previewSizeSB->value();
        rc.paragraph_markers = paragraphMarkerCB->isChecked();
        rc.ct_additions_underlined = ctAdditionsUnderlinedCB->isChecked();
+       rc.draw_strategy = ctUseBackingstoreCB->isChecked()
+               ? LyXRC::DS_BACKINGSTORE : LyXRC::DS_PARTIAL;
 
        // FIXME!! The graphics cache no longer has a changeDisplay method.
 #if 0
@@ -1380,6 +1383,8 @@ void PrefDisplay::updateRC(LyXRC const & rc)
        previewSizeSB->setValue(rc.preview_scale_factor);
        paragraphMarkerCB->setChecked(rc.paragraph_markers);
        ctAdditionsUnderlinedCB->setChecked(rc.ct_additions_underlined);
+       ctUseBackingstoreCB->setChecked(rc.draw_strategy == 
LyXRC::DS_BACKINGSTORE);
+       ctUseBackingstoreCB->setHidden(guiApp->needsBackingStore());
        previewSizeSB->setEnabled(
                rc.display_graphics
                && rc.preview != LyXRC::PREVIEW_OFF);
diff --git a/src/frontends/qt/ui/PrefDisplayUi.ui 
b/src/frontends/qt/ui/PrefDisplayUi.ui
index d8a79eb..9c09b45 100644
--- a/src/frontends/qt/ui/PrefDisplayUi.ui
+++ b/src/frontends/qt/ui/PrefDisplayUi.ui
@@ -83,7 +83,7 @@
      </property>
     </spacer>
    </item>
-   <item row="4" column="0">
+   <item row="5" column="0">
     <spacer>
      <property name="orientation">
       <enum>Qt::Vertical</enum>
@@ -158,6 +158,16 @@
      </property>
     </widget>
    </item>
+   <item row="4" column="0" colspan="2">
+    <widget class="QCheckBox" name="ctUseBackingstoreCB">
+     <property name="toolTip">
+      <string>If this is checked, an intermediate surface will be used for 
painting. This may be needed in some cases to have proper display, but breaks 
subpixel aliasing.</string>
+     </property>
+     <property name="text">
+      <string>Use &amp;backing store to display text</string>
+     </property>
+    </widget>
+   </item>
   </layout>
  </widget>
  <tabstops>
-- 
lyx-cvs mailing list
[email protected]
http://lists.lyx.org/mailman/listinfo/lyx-cvs

Reply via email to