diff --git a/kitty/glfw.c b/kitty/glfw.c index 8c39883e0..f314a47ff 100644 --- a/kitty/glfw.c +++ b/kitty/glfw.c @@ -158,24 +158,15 @@ new(PyTypeObject *type, PyObject *args, PyObject UNUSED *kwds) { } // Global functions {{{ -static PyObject *error_callback = NULL; - static void -cb_error_callback(int error, const char* description) { - CALLBACK(error_callback, "is", error, description) else fprintf(stderr, "[glfw error]: %s\n", description); -} - -PyObject* -glfw_set_error_callback(PyObject UNUSED *self, PyObject *callback) { - Py_CLEAR(error_callback); - error_callback = callback; - Py_INCREF(callback); - Py_RETURN_NONE; +error_callback(int error, const char* description) { + fprintf(stderr, "[glfw error %d]: %s\n", error, description); } PyObject* glfw_init(PyObject UNUSED *self) { + glfwSetErrorCallback(error_callback); PyObject *ans = glfwInit() ? Py_True: Py_False; Py_INCREF(ans); return ans; @@ -466,7 +457,6 @@ PyTypeObject WindowWrapper_Type = { }; static PyMethodDef module_methods[] = { - {"glfw_set_error_callback", (PyCFunction)glfw_set_error_callback, METH_O, ""}, \ {"glfw_init", (PyCFunction)glfw_init, METH_NOARGS, ""}, \ {"glfw_terminate", (PyCFunction)glfw_terminate, METH_NOARGS, ""}, \ {"glfw_window_hint", (PyCFunction)glfw_window_hint, METH_VARARGS, ""}, \ @@ -486,7 +476,6 @@ init_glfw(PyObject *m) { if (PyType_Ready(&WindowWrapper_Type) < 0) return false; if (PyModule_AddObject(m, "GLFWWindow", (PyObject *)&WindowWrapper_Type) != 0) return 0; Py_INCREF(&WindowWrapper_Type); - glfwSetErrorCallback(cb_error_callback); #define ADDC(n) if(PyModule_AddIntConstant(m, #n, n) != 0) return false; #ifdef GLFW_X11_WM_CLASS_NAME ADDC(GLFW_X11_WM_CLASS_NAME) diff --git a/kitty/main.py b/kitty/main.py index 8a16c084d..3b3807a17 100644 --- a/kitty/main.py +++ b/kitty/main.py @@ -22,8 +22,8 @@ from .fast_data_types import ( GLFW_OPENGL_FORWARD_COMPAT, GLFW_OPENGL_PROFILE, GLFW_SAMPLES, GLFW_STENCIL_BITS, GLFWWindow, change_wcwidth, check_for_extensions, clear_buffers, glewInit, glfw_init, glfw_init_hint_string, - glfw_set_error_callback, glfw_swap_interval, glfw_terminate, - glfw_window_hint, set_logical_dpi, set_options + glfw_swap_interval, glfw_terminate, glfw_window_hint, set_logical_dpi, + set_options ) from .layout import all_layouts from .utils import color_as_int, detach, get_logical_dpi, safe_print @@ -207,15 +207,6 @@ def run_app(opts, args): save_cached_values() -def on_glfw_error(code, msg): - if isinstance(msg, bytes): - try: - msg = msg.decode('utf-8') - except Exception: - msg = repr(msg) - safe_print('[glfw error] ', msg, file=sys.stderr) - - def ensure_osx_locale(): # Ensure the LANG env var is set. See # https://github.com/kovidgoyal/kitty/issues/90 @@ -286,7 +277,6 @@ def main(): overrides = (a.replace('=', ' ', 1) for a in args.override or ()) opts = load_config(*config, overrides=overrides) change_wcwidth(not opts.use_system_wcwidth) - glfw_set_error_callback(on_glfw_error) if GLFW_X11_WM_CLASS_CLASS is not None: glfw_init_hint_string(GLFW_X11_WM_CLASS_CLASS, opts.cls) if not glfw_init():