summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Bruhin <git@the-compiler.org>2017-10-16 06:18:09 +0200
committerFlorian Bruhin <git@the-compiler.org>2017-10-16 06:18:29 +0200
commit45c75d5e04b2640aa720b959e74b8913c5fc78e5 (patch)
tree8fec1fb2880a532e436c5a6999039d2d188469ba
parent9404c61f106daba97514900f74a840ba7fb1759c (diff)
downloadqutebrowser-45c75d5e04b2640aa720b959e74b8913c5fc78e5.tar.gz
qutebrowser-45c75d5e04b2640aa720b959e74b8913c5fc78e5.zip
Fix setting monospace fonts with None values
Fixes #3130 (cherry picked from commit 2a65cadb67ec8ec1792e5e6f90b770ae82e6b221)
-rw-r--r--qutebrowser/config/configinit.py4
-rw-r--r--tests/unit/config/test_configinit.py9
2 files changed, 12 insertions, 1 deletions
diff --git a/qutebrowser/config/configinit.py b/qutebrowser/config/configinit.py
index c76efba00..027aedb04 100644
--- a/qutebrowser/config/configinit.py
+++ b/qutebrowser/config/configinit.py
@@ -104,7 +104,9 @@ def _update_monospace_fonts():
continue
elif not isinstance(opt.typ, configtypes.Font):
continue
- elif not config.instance.get_obj(name).endswith(' monospace'):
+
+ value = config.instance.get_obj(name)
+ if value is None or not value.endswith(' monospace'):
continue
config.instance.changed.emit(name)
diff --git a/tests/unit/config/test_configinit.py b/tests/unit/config/test_configinit.py
index 820b03a38..1501b794d 100644
--- a/tests/unit/config/test_configinit.py
+++ b/tests/unit/config/test_configinit.py
@@ -258,6 +258,15 @@ class TestEarlyInit:
# Font subclass, but doesn't end with "monospace"
assert 'fonts.web.family.standard' not in changed_options
+ def test_setting_monospace_fonts_family(self, init_patch, args):
+ """Make sure setting fonts.monospace after a family works.
+
+ See https://github.com/qutebrowser/qutebrowser/issues/3130
+ """
+ configinit.early_init(args)
+ config.instance.set_str('fonts.web.family.standard', '')
+ config.instance.set_str('fonts.monospace', 'Terminus')
+
def test_force_software_rendering(self, monkeypatch, config_stub):
"""Setting force_software_rendering should set the environment var."""
envvar = 'QT_XCB_FORCE_SOFTWARE_OPENGL'