** \legal
** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley
** Copyright 2006 Yue Shi Lai
+** Copyright (c) 2007 Chris Moore
**
** This package is free software; you can redistribute it and/or
** modify it under the terms of the GNU General Public License as
// don't leave the render function queued if we are about to vanish;
// that causes crashes
if(render_idle_func_id)
- {
- synfig::info("g_source_remove() returns %d", g_source_remove(render_idle_func_id));
render_idle_func_id=0;
- } else
- synfig::info("no render_idle_func_id to clear\n");
+}
+
+bool
+WorkArea::get_updating()const
+{
+ return App::single_threaded && async_renderer && async_renderer->updating;
+}
+
+void
+WorkArea::stop_updating(bool cancel)
+{
+ async_renderer->stop();
+ if (cancel) canceled_=true;
}
void
bool
studio::WorkArea::async_update_preview()
{
+ if (get_updating())
+ {
+ stop_updating();
+ return false;
+ }
+
async_renderer=0;
queued=false;
drawing_area->queue_draw_area(4-dx, 4-dy, 4-dx+timecode_width, 4-dy+timecode_height);
}
+#ifndef USE_FRAME_BACKGROUND_TO_SHOW_EDIT_MODE
if(canvas_interface->get_mode()&synfigapp::MODE_ANIMATE)
{
int maxx = drawing_area->get_width()-1;
drawing_area->queue_draw_area(0, -dy, maxx, -dy);
}
}
+#endif // USE_FRAME_BACKGROUND_TO_SHOW_EDIT_MODE
last_focus_point=focus_point;
}