X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-studio%2Ftrunk%2Fsrc%2Fgtkmm%2Fworkarea.cpp;h=0dd4ffc8650e1ac575c9d6bef8e1ce0f4b644f0c;hb=f529eeed2dbb4ca64de2022f727eb55485f20296;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..0dd4ffc 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,13 @@ public: bool studio::WorkArea::async_update_preview() { + if (get_updating()) + { + stop_updating(); + queue_render_preview(); + return false; + } + async_renderer=0; queued=false; @@ -2625,12 +2645,12 @@ studio::WorkArea::set_cursor(Gdk::CursorType x) drawing_area->get_window()->set_cursor(Gdk::Cursor(x)); } -#include "iconcontroler.h" +#include "iconcontroller.h" void studio::WorkArea::refresh_cursor() { -// set_cursor(IconControler::get_tool_cursor(canvas_view->get_smach().get_state_name(),drawing_area->get_window())); +// set_cursor(IconController::get_tool_cursor(canvas_view->get_smach().get_state_name(),drawing_area->get_window())); } void