From 2a65cadb67ec8ec1792e5e6f90b770ae82e6b221 Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Mon, 16 Oct 2017 06:18:09 +0200 Subject: [PATCH] Fix setting monospace fonts with None values Fixes #3130 --- qutebrowser/config/configinit.py | 4 +++- tests/unit/config/test_configinit.py | 9 +++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) 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'