import gtk
gtk.gdk.threads_init() # commenting out this line makes the problem go away.

import evince

class EvinceWindow(gtk.Window):
    def __init__(self):
        super(EvinceWindow, self).__init__()

        document = evince.factory_get_document(
            'file:///tmp/foo.pdf',
        )

        view = evince.View()
        view.set_document(document)
#        view.set_screen_dpi(96)
#        view.set_sizing_mode(evince.SIZING_BEST_FIT)
        view.set_presentation(True)

        scroll = gtk.ScrolledWindow()
        scroll.add(view)

        self.add(scroll)

if __name__ == '__main__':
    win = EvinceWindow()
    win.show_all()
    win.connect('destroy', gtk.main_quit)
    gtk.main()

