X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-studio%2Ftrunk%2Fsrc%2Fgtkmm%2Fworkarea.cpp;h=fa017e609a125e745d2c2905dbaba423c0f40dcd;hb=9f675b68765a7dac8f29a428152f137d0da46f2b;hp=e7c800d8f858e0c5c7015a752440d0a1211c226c;hpb=37600b4b217caa5e316984ec0b035c5e8f9698af;p=synfig.git diff --git a/synfig-studio/trunk/src/gtkmm/workarea.cpp b/synfig-studio/trunk/src/gtkmm/workarea.cpp index e7c800d..fa017e6 100644 --- a/synfig-studio/trunk/src/gtkmm/workarea.cpp +++ b/synfig-studio/trunk/src/gtkmm/workarea.cpp @@ -810,6 +810,19 @@ WorkArea::~WorkArea() render_idle_func_id=0; } +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 WorkArea::save_meta_data() { @@ -2174,6 +2187,12 @@ public: bool studio::WorkArea::async_update_preview() { + if (get_updating()) + { + stop_updating(); + return false; + } + async_renderer=0; queued=false;