X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-studio%2Ftrunk%2Fsrc%2Fgtkmm%2Fdock_navigator.cpp;h=7141fa99ea0ebffdd207f63beba012b903cd389a;hb=756c0d29ac1742f231e6615f9a577e574e35a4af;hp=d0717bba368f7c6153fbd1e5315ffb394a3314c2;hpb=db49fa613552bf53c58d019ce204b84234ac27f7;p=synfig.git diff --git a/synfig-studio/trunk/src/gtkmm/dock_navigator.cpp b/synfig-studio/trunk/src/gtkmm/dock_navigator.cpp index d0717bb..7141fa9 100644 --- a/synfig-studio/trunk/src/gtkmm/dock_navigator.cpp +++ b/synfig-studio/trunk/src/gtkmm/dock_navigator.cpp @@ -44,6 +44,8 @@ #include "asyncrenderer.h" +#include "general.h" + #endif /* === U S I N G =========================================================== */ @@ -180,7 +182,6 @@ void studio::Widget_NavView::on_finish_render() //synfig::warning("Nav: It hath succeeded!!!"); //assert(renderer && renderer->has_success()); - DEBUGPOINT(); //synfig::warning("Nav: now we know it really succeeded"); if(!*surface) { @@ -220,7 +221,7 @@ void studio::Widget_NavView::on_finish_render() dw, // width dh, // height dw*synfig::channels(pf), // stride (pitch) - SigC::slot(freegu8) + sigc::ptr_fun(freegu8) ); } else @@ -258,6 +259,11 @@ static double zoom_to_unit(double f) bool studio::Widget_NavView::on_expose_draw(GdkEventExpose */*exp*/) { + // don't redraw if the previous redraw is still running single-threaded + // or we end up destroying the renderer that's rendering it + if (App::single_threaded && renderer && renderer->updating) + return false; + //print out the zoom //HACK kind of... //zoom_print.set_text(strprintf("%.1f%%",100*unit_to_zoom(adj_zoom.get_value())));