Fix kitty @ set-colors not working with the window border colors

Fixes #623
This commit is contained in:
Kovid Goyal 2018-06-11 09:03:24 +05:30
parent ed71e73ca5
commit e55cae6192
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C
4 changed files with 22 additions and 5 deletions

View File

@ -83,6 +83,9 @@ Changelog
- Remote control: Fix kitty @ sometimes failing to read the response from
kitty. (:iss:`614`)
- Fix `kitty @ set-colors` not working with the window border colors.
(:iss:`623`)
0.10.1 [2018-05-24]
------------------------------

View File

@ -21,8 +21,8 @@
ChildMonitor, background_opacity_of, change_background_opacity,
create_os_window, current_os_window, destroy_global_data,
get_clipboard_string, glfw_post_empty_event, global_font_size,
mark_os_window_for_close, os_window_font_size, set_clipboard_string,
set_in_sequence_mode, toggle_fullscreen
mark_os_window_for_close, os_window_font_size, patch_global_colors,
set_clipboard_string, set_in_sequence_mode, toggle_fullscreen
)
from .keys import get_shortcut, shortcut_matches
from .remote_control import handle_cmd
@ -792,5 +792,6 @@ def patch_colors(self, spec, configured=False):
for k, v in spec.items():
if hasattr(self.opts, k):
setattr(self.opts, k, color_from_int(v))
patch_global_colors(spec)
for tm in self.all_tab_managers:
tm.tab_bar.patch_colors(spec)

View File

@ -545,13 +545,13 @@ draw_borders(ssize_t vao_idx, unsigned int num_border_rects, BorderRect *rect_bu
if (!constants_set) {
constants_set = true;
glUniform1f(border_uniform_locations[BORDER_background_opacity], w->background_opacity);
glUniform3f(border_uniform_locations[BORDER_active_border_color], CV3(OPT(active_border_color)));
glUniform3f(border_uniform_locations[BORDER_inactive_border_color], CV3(OPT(inactive_border_color)));
glUniform3f(border_uniform_locations[BORDER_bell_border_color], CV3(OPT(bell_border_color)));
}
if (OPT(dynamic_background_opacity)) {
glUniform1f(border_uniform_locations[BORDER_background_opacity], w->background_opacity);
}
glUniform3f(border_uniform_locations[BORDER_active_border_color], CV3(OPT(active_border_color)));
glUniform3f(border_uniform_locations[BORDER_inactive_border_color], CV3(OPT(inactive_border_color)));
glUniform3f(border_uniform_locations[BORDER_bell_border_color], CV3(OPT(bell_border_color)));
glUniform2ui(border_uniform_locations[BORDER_viewport], viewport_width, viewport_height);
color_type default_bg = num_visible_windows > 1 ? OPT(background) : active_window_bg;
glUniform3f(border_uniform_locations[BORDER_default_bg], CV3(default_bg));

View File

@ -652,6 +652,18 @@ PYWRAP1(set_boss) {
Py_RETURN_NONE;
}
PYWRAP1(patch_global_colors) {
#define P(name) { \
PyObject *val = PyDict_GetItemString(args, #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);
if (PyErr_Occurred()) return NULL;
Py_RETURN_NONE;
}
PYWRAP0(destroy_global_data) {
Py_CLEAR(global_state.boss);
free(global_state.os_windows); global_state.os_windows = NULL;
@ -705,6 +717,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(destroy_global_data, METH_NOARGS),
{NULL, NULL, 0, NULL} /* Sentinel */