diff options
| author | Dana Jansens <danakj@orodu.net> | 2003-01-06 19:01:49 +0000 |
|---|---|---|
| committer | Dana Jansens <danakj@orodu.net> | 2003-01-06 19:01:49 +0000 |
| commit | 40449e199dfeab57e8d147e07989aef339a7da59 (patch) | |
| tree | d33c1d377460dc5f080cb43326524903f717030b /src/python.cc | |
| parent | 1f8b8425ae82c2c086f6648b7608b37685997634 (diff) | |
allow to bind multiple functions to everything
Diffstat (limited to 'src/python.cc')
| -rw-r--r-- | src/python.cc | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/python.cc b/src/python.cc index 60c3e012..c463fdc8 100644 --- a/src/python.cc +++ b/src/python.cc @@ -496,13 +496,17 @@ PyObject *kbind(PyObject *keylist, ob::KeyContext context, PyObject *func) Py_INCREF(Py_None); return Py_None; } -PyObject *kunbind(PyObject *keylist) +PyObject *kunbind(PyObject *keylist, PyObject *func) { if (!PyList_Check(keylist)) { PyErr_SetString(PyExc_TypeError, "Invalid keylist. Not a list."); return NULL; } - + if (!PyCallable_Check(func)) { + PyErr_SetString(PyExc_TypeError, "Invalid callback function."); + return NULL; + } + ob::OBBindings::StringVect vectkeylist; for (int i = 0, end = PyList_Size(keylist); i < end; ++i) { PyObject *str = PyList_GetItem(keylist, i); @@ -514,7 +518,10 @@ PyObject *kunbind(PyObject *keylist) vectkeylist.push_back(PyString_AsString(str)); } - ob::Openbox::instance->bindings()->removeKey(vectkeylist); + if (!ob::Openbox::instance->bindings()->removeKey(vectkeylist, func)) { + PyErr_SetString(PyExc_RuntimeError, "Could not remove callback."); + return NULL; + } Py_INCREF(Py_None); return Py_None; } |
