static void defer_event(pa_mainloop_api *m, pa_defer_event *e, void *userdata) {
pa_x11_wrapper *w = userdata;
assert(m && e && w && w->ref >= 1);
+
+ m->defer_enable(e, 0);
+
work(w);
}
assert(m && e && fd >= 0 && w && w->ref >= 1);
XProcessInternalConnection(w->display, fd);
+
+ work(w);
}
/* Add a new IO source for the specified X11 internal connection */
Display *pa_x11_wrapper_get_display(pa_x11_wrapper *w) {
assert(w && w->ref >= 1);
+
+ /* Somebody is using us, schedule a output buffer flush */
+ w->core->mainloop->defer_enable(w->defer_event, 1);
+
return w->display;
}