From 2d3b7d15c757ce35daf85942be032589fce36ddb Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Tue, 29 Nov 2016 20:39:47 +0530 Subject: [PATCH] Allow passing a timeout to waitevents --- kitty/data-types.c | 2 +- kitty/glfw.c | 7 +++++-- kitty/glfw.h | 2 +- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/kitty/data-types.c b/kitty/data-types.c index d2e866de4..40892e9bb 100644 --- a/kitty/data-types.c +++ b/kitty/data-types.c @@ -21,7 +21,7 @@ static PyMethodDef module_methods[] = { {"glfw_terminate", (PyCFunction)glfw_terminate, METH_NOARGS, ""}, {"glfw_window_hint", (PyCFunction)glfw_window_hint, METH_VARARGS, ""}, {"glfw_swap_interval", (PyCFunction)glfw_swap_interval, METH_VARARGS, ""}, - {"glfw_wait_events", (PyCFunction)glfw_wait_events, METH_NOARGS, ""}, + {"glfw_wait_events", (PyCFunction)glfw_wait_events, METH_VARARGS, ""}, {"glfw_post_empty_event", (PyCFunction)glfw_post_empty_event, METH_NOARGS, ""}, {"glfw_get_physical_dpi", (PyCFunction)glfw_get_physical_dpi, METH_NOARGS, ""}, {NULL, NULL, 0, NULL} /* Sentinel */ diff --git a/kitty/glfw.c b/kitty/glfw.c index 1c26ac27e..a789be361 100644 --- a/kitty/glfw.c +++ b/kitty/glfw.c @@ -155,9 +155,12 @@ glfw_swap_interval(PyObject UNUSED *self, PyObject *args) { } PyObject* -glfw_wait_events(PyObject UNUSED *self) { +glfw_wait_events(PyObject UNUSED *self, PyObject *args) { + double time = -1; + if(!PyArg_ParseTuple(args, "|d", &time)) return NULL; Py_BEGIN_ALLOW_THREADS; - glfwWaitEvents(); + if (time < 0) glfwWaitEvents(); + else glfwWaitEventsTimeout(time); Py_END_ALLOW_THREADS; Py_RETURN_NONE; } diff --git a/kitty/glfw.h b/kitty/glfw.h index 81d1bb04a..27b51a811 100644 --- a/kitty/glfw.h +++ b/kitty/glfw.h @@ -14,6 +14,6 @@ PyObject* glfw_init(PyObject UNUSED *self); PyObject* glfw_terminate(PyObject UNUSED *self); PyObject* glfw_window_hint(PyObject UNUSED *self, PyObject *args); PyObject* glfw_swap_interval(PyObject UNUSED *self, PyObject *args); -PyObject* glfw_wait_events(PyObject UNUSED *self); +PyObject* glfw_wait_events(PyObject UNUSED *self, PyObject*); PyObject* glfw_post_empty_event(PyObject UNUSED *self); PyObject* glfw_get_physical_dpi(PyObject UNUSED *self);