diff --git a/python/caca/canvas.py b/python/caca/canvas.py index 725ae49..046a1c3 100644 --- a/python/caca/canvas.py +++ b/python/caca/canvas.py @@ -38,7 +38,7 @@ class _Canvas(object): return "" % (self.get_width(), self.get_height()) def __del__(self): - if self._cv > 0: + if self._cv > 0 and _lib is not None: self._free() def _free(self): diff --git a/python/caca/display.py b/python/caca/display.py index 93e028b..7cf4d71 100644 --- a/python/caca/display.py +++ b/python/caca/display.py @@ -32,7 +32,7 @@ class _Display(object): return "" def __del__(self): - if self._dp > 0: + if self._dp > 0 and _lib is not None: self._free() def _free(self): @@ -43,6 +43,7 @@ class _Display(object): return _lib.caca_free_display(self) + class Display(_Display): """ Display objects, methods are libcaca functions with display_t as first parameter. diff --git a/python/examples/drawing.py b/python/examples/drawing.py index 4a9609c..3bcf02e 100755 --- a/python/examples/drawing.py +++ b/python/examples/drawing.py @@ -96,22 +96,38 @@ if __name__ == "__main__": sys.exit() elif ch == ord('1'): draw.do_line() + dp.refresh() + time.sleep(2) elif ch == ord('2'): draw.do_line(thin=True) + dp.refresh() + time.sleep(2) elif ch == ord('3'): draw.do_polyline() + dp.refresh() + time.sleep(2) elif ch == ord('4'): draw.do_polyline(thin=True) + dp.refresh() + time.sleep(2) elif ch == ord('5'): draw.do_circle() + dp.refresh() + time.sleep(2) elif ch == ord('6'): draw.do_ellipse() + dp.refresh() + time.sleep(2) elif ch == ord('7'): draw.do_ellipse(thin=True) + dp.refresh() + time.sleep(2) elif ch == ord('8'): draw.do_box() + dp.refresh() + time.sleep(2) elif ch == ord('9'): draw.do_box(thin=True) - dp.refresh() - time.sleep(2) + dp.refresh() + time.sleep(2)