This way, we can hijack the begin/end draw process and do out own processing before passing it on to GDK.