Removed a bunch more DEBUGPOINT()s.
[synfig.git] / synfig-studio / trunk / src / gtkmm / dock_navigator.cpp
index d0717bb..7141fa9 100644 (file)
@@ -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())));