**
** \legal
** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley
+** Copyright (c) 2007 Chris Moore
**
** This package is free software; you can redistribute it and/or
** modify it under the terms of the GNU General Public License as
#include "asyncrenderer.h"
+#include "general.h"
+
#endif
/* === U S I N G =========================================================== */
renderer = new AsyncRenderer(targ);
renderer->signal_success().connect(sigc::mem_fun(*this,&Widget_NavView::on_finish_render));
- renderer->start();
dirty = false;
+ renderer->start();
}
}
//synfig::warning("Nav: It hath succeeded!!!");
//assert(renderer && renderer->has_success());
- DEBUGPOINT();
//synfig::warning("Nav: now we know it really succeeded");
if(!*surface)
{
dw, // width
dh, // height
dw*synfig::channels(pf), // stride (pitch)
- SigC::slot(freegu8)
+ sigc::ptr_fun(freegu8)
);
}
else
}else return -999999.0;
}
-bool studio::Widget_NavView::on_expose_draw(GdkEventExpose *exp)
+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())));