From ea414945f259c03f93805d2337d43d22f464cf2f Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Mon, 11 Jun 2018 17:52:00 +0530 Subject: [PATCH] DRYer --- kitty/boss.py | 5 +---- kitty/state.c | 12 +++++++++--- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/kitty/boss.py b/kitty/boss.py index abb135520..f47e0645c 100644 --- a/kitty/boss.py +++ b/kitty/boss.py @@ -794,7 +794,4 @@ class Boss: setattr(self.opts, k, color_from_int(v)) for tm in self.all_tab_managers: tm.tab_bar.patch_colors(spec) - if not configured: - spec = spec.copy() - spec.pop('background', None) - patch_global_colors(spec) + patch_global_colors(spec, configured) diff --git a/kitty/state.c b/kitty/state.c index c80124c91..fb7f0e65c 100644 --- a/kitty/state.c +++ b/kitty/state.c @@ -653,13 +653,19 @@ PYWRAP1(set_boss) { } PYWRAP1(patch_global_colors) { + PyObject *spec; + int configured; + if (!PyArg_ParseTuple(args, "Op", &spec, &configured)) return NULL; #define P(name) { \ - PyObject *val = PyDict_GetItemString(args, #name); \ + PyObject *val = PyDict_GetItemString(spec, #name); \ if (val) { \ global_state.opts.name = PyLong_AsLong(val); \ } \ } - P(url_color); P(active_border_color); P(inactive_border_color); P(bell_border_color); P(background); + P(active_border_color); P(inactive_border_color); P(bell_border_color); + if (configured) { + P(background); P(url_color); + } if (PyErr_Occurred()) return NULL; Py_RETURN_NONE; } @@ -717,7 +723,7 @@ static PyMethodDef module_methods[] = { MW(global_font_size, METH_VARARGS), MW(os_window_font_size, METH_VARARGS), MW(set_boss, METH_O), - MW(patch_global_colors, METH_O), + MW(patch_global_colors, METH_VARARGS), MW(destroy_global_data, METH_NOARGS), {NULL, NULL, 0, NULL} /* Sentinel */