The refreshWindow() function calls doPaint() from zlibrary/ui/src/gtk/ZLGtkViewWidget.cpp, which is where the actual drawing takes place.
Code:
//added for iliad
#include <gtk/gtk.h>
#include <gdk/gdkx.h>
#include <liberdm/erdm.h>
#include <liberipc/eripcviewer.h>
#include <liberipc/eripcbusyd.h>
erClientChannel_t erbusyChannel;
erClientChannel_t ertoolbarChannel;
Display * display;
//snip
static void doPaint(GtkWidget*, GdkEventExpose*, ZLGtkViewWidget *data) {
// Turn on the busy LED
busySetBusy(erbusyChannel, ccBusyState_Blink);
data->doPaint();
// update eInk display
display = gdk_x11_display_get_xdisplay(gdk_display_get_default());
XSync(display, 1);
dmDisplay(dmCmdPriorUrgent, dmQFull);
//Turn off the busy LED
busySetBusy(erbusyChannel, ccBusyState_Off)
That's what I used for the 0.10 binary I posted. Just now updating things for 0.12.7, hopefully will have a new binary to post soon, with pre-rendered pages