#!/usr/bin/python import gtk import gobject class MyApp(): def __init__(self): window = gtk.Window() window.set_decorated(False) window.set_opacity(0) drawing_area = gtk.DrawingArea() drawing_area.set_size_request(512, 512) #self.pixbuf = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB, True, 8, 300, 300) window.connect('destroy', self.destroy) drawing_area.connect('configure_event', self.__configure_cb) drawing_area.connect('expose-event', self.__expose_cb) window.add(drawing_area) window.set_position(gtk.WIN_POS_CENTER_ALWAYS) window.show() drawing_area.show() def destroy(self, window, data=None): gtk.main_quit() def __configure_cb(self, drawing_area, data=None): x, y, width, height = drawing_area.get_allocation() drawing_area.window.set_opacity(0) canvas = drawing_area.window #self.pixmap = gtk.gdk.Pixmap(canvas, width, height, depth=-1) #self.pixmap.draw_pixbuf(None, self.pixbuf, 0, 0, 0, 0, -1, -1, # gtk.gdk.RGB_DITHER_NONE, 0, 0) return True def __expose_cb(self, drawing_area, data=None): x, y, width, height = data.area #context = drawing_area.get_style().fg_gc[gtk.STATE_NORMAL] context = drawing_area.window.new_gc(foreground=None, background=None) canvas = drawing_area.window canvas.draw_drawable(context, self.pixmap, x, y, x, y, width, height) return False if __name__ == "__main__": my_app = MyApp() gtk.main()