HaskellでTwitterクライアント開発blog(仮)

今すぐに挫折するかもしれない程度のモチベーションによるTwitterクライアント開発記

DrawingAreaの描画について

タイムラインをDrawingAreaに描画する仕様に変えた際(http://hshstter.hatenablog.com/entry/2012/04/14/190927)に、ちょっとまずいことをしていたようなのでメモ。

DrawingAreaの再描画を行うのに、いままで

Graphics.UI.Gtk.Gdk.DrawWindow.drawWindowClearAreaExpose ::
DrawWindowClass self => self -> Int -> Int -> Int -> Int -> IO ()

 を使っていたのだが、これだと一旦DrawingAreaをクリアしてから再描画するので、これではなく

Graphics.UI.Gtk.Abstract.Widget.widgetQueueDraw :: WidgetClass self => self -> IO ()

 を使うべきでした。

 

前者のほうだとタイムライン更新時に一瞬画面が白くクリアされるのが見えてしまっていましたが、これで解決。