+ CallbackList::iterator it = std::find(_eventlist[action].begin(),
+ _eventlist[action].end(),
+ callback);
+ if (it != _eventlist[action].end()) {
+ Py_XDECREF(*it);
+ _eventlist[action].erase(it);
+#ifdef XKB
+ if (action == EventBell && _eventlist[action].empty())
+ XkbSelectEvents(otk::Display::display, XkbUseCoreKbd,
+ XkbBellNotifyMask, 0);
+#endif // XKB
+ return true;
+ }
+ return false;