summaryrefslogtreecommitdiff
path: root/cui
diff options
context:
space:
mode:
Diffstat (limited to 'cui')
-rw-r--r--cui/source/options/optgdlg.cxx43
-rw-r--r--cui/source/options/optgdlg.hxx2
-rw-r--r--cui/uiconfig/ui/optviewpage.ui21
3 files changed, 62 insertions, 4 deletions
diff --git a/cui/source/options/optgdlg.cxx b/cui/source/options/optgdlg.cxx
index e10f743361c8..fb73341b9897 100644
--- a/cui/source/options/optgdlg.cxx
+++ b/cui/source/options/optgdlg.cxx
@@ -188,6 +188,7 @@ class SkiaCfg
private:
bool mbUseSkia;
bool mbForceSkia;
+ bool mbForceSkiaRaster;
bool mbModified;
public:
@@ -196,9 +197,11 @@ public:
bool useSkia() const;
bool forceSkia() const;
+ bool forceSkiaRaster() const;
void setUseSkia(bool bSkia);
void setForceSkia(bool bSkia);
+ void setForceSkiaRaster(bool bSkia);
void reset();
};
@@ -213,6 +216,7 @@ void SkiaCfg::reset()
{
mbUseSkia = officecfg::Office::Common::VCL::UseSkia::get();
mbForceSkia = officecfg::Office::Common::VCL::ForceSkia::get();
+ mbForceSkiaRaster = officecfg::Office::Common::VCL::ForceSkiaRaster::get();
mbModified = false;
}
@@ -227,6 +231,8 @@ SkiaCfg::~SkiaCfg()
officecfg::Office::Common::VCL::UseSkia::set(mbUseSkia, batch);
if (!officecfg::Office::Common::VCL::ForceSkia::isReadOnly())
officecfg::Office::Common::VCL::ForceSkia::set(mbForceSkia, batch);
+ if (!officecfg::Office::Common::VCL::ForceSkiaRaster::isReadOnly())
+ officecfg::Office::Common::VCL::ForceSkiaRaster::set(mbForceSkiaRaster, batch);
batch->commit();
}
catch (...)
@@ -245,6 +251,11 @@ bool SkiaCfg::forceSkia() const
return mbForceSkia;
}
+bool SkiaCfg::forceSkiaRaster() const
+{
+ return mbForceSkiaRaster;
+}
+
void SkiaCfg::setUseSkia(bool bSkia)
{
if (bSkia != mbUseSkia)
@@ -263,6 +274,15 @@ void SkiaCfg::setForceSkia(bool bSkia)
}
}
+void SkiaCfg::setForceSkiaRaster(bool bSkia)
+{
+ if (mbForceSkiaRaster != bSkia)
+ {
+ mbForceSkiaRaster = bSkia;
+ mbModified = true;
+ }
+}
+
}
// class OfaMiscTabPage --------------------------------------------------
@@ -759,6 +779,7 @@ OfaViewTabPage::OfaViewTabPage(weld::Container* pPage, weld::DialogController* p
, m_xForceOpenGL(m_xBuilder->weld_check_button("forceopengl"))
, m_xUseSkia(m_xBuilder->weld_check_button("useskia"))
, m_xForceSkia(m_xBuilder->weld_check_button("forceskia"))
+ , m_xForceSkiaRaster(m_xBuilder->weld_check_button("forceskiaraster"))
, m_xOpenGLStatusEnabled(m_xBuilder->weld_label("openglenabled"))
, m_xOpenGLStatusDisabled(m_xBuilder->weld_label("opengldisabled"))
, m_xSkiaStatusEnabled(m_xBuilder->weld_label("skiaenabled"))
@@ -774,6 +795,7 @@ OfaViewTabPage::OfaViewTabPage(weld::Container* pPage, weld::DialogController* p
m_xOpenGLStatusDisabled->hide();
m_xUseSkia->hide();
m_xForceSkia->hide();
+ m_xForceSkiaRaster->hide();
m_xSkiaStatusEnabled->hide();
m_xSkiaStatusDisabled->hide();
m_xMenuIconBox->hide();
@@ -791,6 +813,7 @@ OfaViewTabPage::OfaViewTabPage(weld::Container* pPage, weld::DialogController* p
m_xForceOpenGL->connect_toggled(LINK(this, OfaViewTabPage, OnForceOpenGLToggled));
m_xForceSkia->connect_toggled(LINK(this, OfaViewTabPage, OnForceSkiaToggled));
+ m_xForceSkiaRaster->connect_toggled(LINK(this, OfaViewTabPage, OnForceSkiaRasterToggled));
// Set known icon themes
OUString sAutoStr( m_xIconStyleLB->get_text( 0 ) );
@@ -825,6 +848,8 @@ OfaViewTabPage::OfaViewTabPage(weld::Container* pPage, weld::DialogController* p
m_xUseSkia->set_sensitive(false);
if (officecfg::Office::Common::VCL::ForceSkia::isReadOnly())
m_xForceSkia->set_sensitive(false);
+ if (officecfg::Office::Common::VCL::ForceSkiaRaster::isReadOnly())
+ m_xForceSkiaRaster->set_sensitive(false);
UpdateOGLStatus();
UpdateSkiaStatus();
@@ -862,6 +887,15 @@ IMPL_LINK_NOARG(OfaViewTabPage, OnForceSkiaToggled, weld::ToggleButton&, void)
}
}
+IMPL_LINK_NOARG(OfaViewTabPage, OnForceSkiaRasterToggled, weld::ToggleButton&, void)
+{
+ if (m_xForceSkiaRaster->get_active())
+ {
+ // Forcing Skia raster implies that Skia is on.
+ m_xUseSkia->set_active(true);
+ }
+}
+
std::unique_ptr<SfxTabPage> OfaViewTabPage::Create( weld::Container* pPage, weld::DialogController* pController, const SfxItemSet* rAttrSet )
{
return std::make_unique<OfaViewTabPage>(pPage, pController, *rAttrSet);
@@ -1029,10 +1063,12 @@ bool OfaViewTabPage::FillItemSet( SfxItemSet* )
}
if (m_xUseSkia->get_state_changed_from_saved() ||
- m_xForceSkia->get_state_changed_from_saved())
+ m_xForceSkia->get_state_changed_from_saved() ||
+ m_xForceSkiaRaster->get_state_changed_from_saved())
{
mpSkiaConfig->setUseSkia(m_xUseSkia->get_active());
mpSkiaConfig->setForceSkia(m_xForceSkia->get_active());
+ mpSkiaConfig->setForceSkiaRaster(m_xForceSkiaRaster->get_active());
bModified = true;
}
@@ -1074,7 +1110,8 @@ bool OfaViewTabPage::FillItemSet( SfxItemSet* )
}
if (m_xUseSkia->get_state_changed_from_saved() ||
- m_xForceSkia->get_state_changed_from_saved())
+ m_xForceSkia->get_state_changed_from_saved() ||
+ m_xForceSkiaRaster->get_state_changed_from_saved())
{
SolarMutexGuard aGuard;
if( svtools::executeRestartDialog(
@@ -1191,6 +1228,7 @@ void OfaViewTabPage::Reset( const SfxItemSet* )
m_xForceOpenGL->set_active(mpOpenGLConfig->forceOpenGL());
m_xUseSkia->set_active(mpSkiaConfig->useSkia());
m_xForceSkia->set_active(mpSkiaConfig->forceSkia());
+ m_xForceSkiaRaster->set_active(mpSkiaConfig->forceSkiaRaster());
#if defined( UNX )
m_xFontAntiAliasing->save_state();
@@ -1202,6 +1240,7 @@ void OfaViewTabPage::Reset( const SfxItemSet* )
m_xForceOpenGL->save_state();
m_xUseSkia->save_state();
m_xForceSkia->save_state();
+ m_xForceSkiaRaster->save_state();
#if defined( UNX )
OnAntialiasingToggled(*m_xFontAntiAliasing);
diff --git a/cui/source/options/optgdlg.hxx b/cui/source/options/optgdlg.hxx
index 491b817c25a6..04988f8e57a4 100644
--- a/cui/source/options/optgdlg.hxx
+++ b/cui/source/options/optgdlg.hxx
@@ -117,6 +117,7 @@ private:
std::unique_ptr<weld::CheckButton> m_xForceOpenGL;
std::unique_ptr<weld::CheckButton> m_xUseSkia;
std::unique_ptr<weld::CheckButton> m_xForceSkia;
+ std::unique_ptr<weld::CheckButton> m_xForceSkiaRaster;
std::unique_ptr<weld::Label> m_xOpenGLStatusEnabled;
std::unique_ptr<weld::Label> m_xOpenGLStatusDisabled;
@@ -131,6 +132,7 @@ private:
#endif
DECL_LINK(OnForceOpenGLToggled, weld::ToggleButton&, void);
DECL_LINK(OnForceSkiaToggled, weld::ToggleButton&, void);
+ DECL_LINK(OnForceSkiaRasterToggled, weld::ToggleButton&, void);
void UpdateOGLStatus();
void UpdateSkiaStatus();
diff --git a/cui/uiconfig/ui/optviewpage.ui b/cui/uiconfig/ui/optviewpage.ui
index 23fd4c4ee63e..a54e5865f7b2 100644
--- a/cui/uiconfig/ui/optviewpage.ui
+++ b/cui/uiconfig/ui/optviewpage.ui
@@ -599,6 +599,23 @@
</packing>
</child>
<child>
+ <object class="GtkCheckButton" id="forceskiaraster">
+ <property name="label" translatable="yes" context="optviewpage|forceskiaraster">Force Skia software rendering</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="tooltip_text" translatable="yes" context="optviewpage|forceskia|tooltip_text">Requires restart. Enabling this will prevent the use of graphics drivers.</property>
+ <property name="margin_left">12</property>
+ <property name="use_underline">True</property>
+ <property name="xalign">0</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">8</property>
+ </packing>
+ </child>
+ <child>
<object class="GtkLabel" id="skiaenabled">
<property name="can_focus">False</property>
<property name="margin_left">12</property>
@@ -607,7 +624,7 @@
</object>
<packing>
<property name="left_attach">0</property>
- <property name="top_attach">8</property>
+ <property name="top_attach">9</property>
</packing>
</child>
<child>
@@ -619,7 +636,7 @@
</object>
<packing>
<property name="left_attach">0</property>
- <property name="top_attach">9</property>
+ <property name="top_attach">10</property>
</packing>
</child>
</object>