+ refresh(0);
+}
+
+// must hold window lock
+int Canvas::refresh(int flush)
+{
+ BC_WindowBase *window = get_canvas();
+ if( !window ) return 0;
+// relock in lock order to prevent deadlock
+ window->unlock_window();
+ lock_canvas("Canvas::refresh");
+ draw_refresh(flush);
+ canvas_lock->unlock();
+ return 1;
+}
+// must not hold locks
+int Canvas::redraw(int flush)
+{
+ lock_canvas("Canvas::redraw");
+ draw_refresh(flush);
+ unlock_canvas();
+ return 1;