You could monitor mousedown/mousemove/keypress events on the body. Only stopped events would not bubble up to the body.
EventManager can't be monitored, because the essential methods are private, but you could also monitor Observable.fireEvent to catch any Observable event.
So you would end up with:
Code:
var endSession = function(){
// Do stuff
},
endSessionTask = new Ext.util.DelayedTask(endSession),
delayEndSession = function(){
endSessionTask.delay(60000);
};
Ext.getBody().on({
mousedown: delayEndSession,
mousemove: delayEndSession,
keypress: delayEndSession
});
Ext.util.Observable.prototype.fireEvent = Ext.util.Observable.prototype.fireEvent.fireEvent.createInterceptor(delayEndSession);