if (e.xfocus.detail == NotifyNonlinear) {
focus = e.xfocus.window;
unfocus = None;
- //printf("FocusIn focus=%lx unfocus=%lx\n", focus, unfocus);
+ printf("FocusIn focus=%lx unfocus=%lx\n", focus, unfocus);
}
} else if (e.type == FocusOut) {
// any other types are not ones we're interested in
if (e.xfocus.detail == NotifyNonlinear) {
unfocus = e.xfocus.window;
focus = None;
- //printf("FocusOut focus=%lx unfocus=%lx\n", focus, unfocus);
+ printf("FocusOut focus=%lx unfocus=%lx\n", focus, unfocus);
}
// madly compress all crossing events
} else if (e.type == EnterNotify) {
// any other types are not ones we're interested in
enter = e.xcrossing.window;
enter_root = e.xcrossing.root;
- //printf("Enter enter=%lx leave=%lx\n", enter, leave);
+ printf("Enter enter=%lx leave=%lx\n", enter, leave);
}
} else if (e.type == LeaveNotify) {
// any other types are not ones we're interested in
if (e.xcrossing.mode == NotifyNormal) {
leave = e.xcrossing.window;
leave_root = e.xcrossing.root;
- //printf("Leave enter=%lx leave=%lx\n", enter, leave);
+ printf("Leave enter=%lx leave=%lx\n", enter, leave);
}
} else {
// normal events
if (unfocus != None) {
// the last focus event was an FocusOut, so where the hell is the focus at?
- //printf("UNFOCUSING: %lx\n", unfocus);
+ printf("UNFOCUSING: %lx\n", unfocus);
_focus_e.xfocus.type = FocusOut;
_focus_e.xfocus.window = unfocus;
dispatch(_focus_e.xfocus.window, _focus_e);
} else if (focus != None && focus != _focus) {
// the last focus event was a FocusIn, so unfocus what used to be focus and
// focus this new target
- //printf("FOCUSING: %lx\n", focus);
+ printf("FOCUSING: %lx\n", focus);
_focus_e.xfocus.type = FocusIn;
_focus_e.xfocus.window = focus;
dispatch(_focus_e.xfocus.window, _focus_e);
if (_focus != None) {
- //printf("UNFOCUSING: %lx\n", _focus);
+ printf("UNFOCUSING: %lx\n", _focus);
_focus_e.xfocus.type = FocusOut;
_focus_e.xfocus.window = _focus;
dispatch(_focus_e.xfocus.window, _focus_e);
static PyObject *_wrap_OBTimerQueueManager_fire(PyObject *self, PyObject *args) {
PyObject *resultobj;
otk::OBTimerQueueManager *arg1 = (otk::OBTimerQueueManager *) 0 ;
+ bool arg2 = (bool) true ;
PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
- if(!PyArg_ParseTuple(args,(char *)"O:OBTimerQueueManager_fire",&obj0)) goto fail;
+ if(!PyArg_ParseTuple(args,(char *)"O|O:OBTimerQueueManager_fire",&obj0,&obj1)) goto fail;
if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_otk__OBTimerQueueManager,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
- (arg1)->fire();
+ if (obj1) {
+ arg2 = (bool) PyInt_AsLong(obj1);
+ if (PyErr_Occurred()) SWIG_fail;
+ }
+ (arg1)->fire(arg2);
Py_INCREF(Py_None); resultobj = Py_None;
return resultobj;
namespace otk {
-void OBTimerQueueManager::fire()
+void OBTimerQueueManager::fire(bool wait)
{
fd_set rfds;
timeval now, tm, *timeout = (timeval *) 0;
FD_ZERO(&rfds);
FD_SET(xfd, &rfds); // break on any x events
- if (! timerList.empty()) {
- const OBTimer* const timer = timerList.top();
-
- gettimeofday(&now, 0);
- tm = timer->remainingTime(now);
-
- timeout = &tm;
+ if (wait) {
+ if (! timerList.empty()) {
+ const OBTimer* const timer = timerList.top();
+
+ gettimeofday(&now, 0);
+ tm = timer->remainingTime(now);
+
+ timeout = &tm;
+ }
+
+ select(xfd + 1, &rfds, 0, 0, timeout);
}
- select(xfd + 1, &rfds, 0, 0, timeout);
-
// check for timer timeout
gettimeofday(&now, 0);
//! Destroys the OBTimerQueueManager
virtual ~OBTimerQueueManager() {}
- //! Will wait for and fire the next timer in the queue.
+ //! Fire the next timer in the queue.
/*!
- The function will stop waiting if an event is received from the X server.
+ @param wait If true, this function will wait for the next timer, breaking
+ on any events from the X server.
*/
- virtual void fire();
+ virtual void fire(bool wait = true);
//! Adds a new timer to the queue
/*!