X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-studio%2Ftrunk%2Fsrc%2Fgtkmm%2Fworkarea.cpp;h=ba0d49be46b109d1243c9dcaa248ba6d5d899f0a;hb=b5acd1d61e8cfd094284c114c2af96752ade65d5;hp=65600c53744933723b4147e1d139f3b8f3d64bca;hpb=f9d8a24a671b759c2be95bc10cd330f310b7dcc2;p=synfig.git diff --git a/synfig-studio/trunk/src/gtkmm/workarea.cpp b/synfig-studio/trunk/src/gtkmm/workarea.cpp index 65600c5..ba0d49b 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,9 +2187,10 @@ public: bool studio::WorkArea::async_update_preview() { - if (async_renderer && async_renderer->updating == true) + if (get_updating()) { - async_renderer->stop(); + stop_updating(); + queue_render_preview(); return false; }