Example #1
0
void Event::handle() {
    Handler* h = nil;
    if (rep()->xevent_.type != KeyPress) {
	h = grabber();
    }else if (ivoc_snapshot_ && (*ivoc_snapshot_)(this)) {
	return;
    }
    if (h == nil) {
	h = handler();
    }
    if (h != nil) {
	boolean b = Resource::defer(true);
	h->ref();
	h->event(*this);
	h->unref();
	Resource::flush();
	Resource::defer(b);
    }
}