X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-studio%2Ftrunk%2Fsrc%2Fgtkmm%2Fdock_navigator.cpp;h=c558960bff46ea9d1be22d48b94c09d7789a2e49;hb=5f937f1d74ccc6dc54f876e62cdea574e7cb56bf;hp=cc48ab680aa33fda5423598271ea1218d75bd564;hpb=24891b3e9f5b6bb97ec426b177651a637fbc7c55;p=synfig.git diff --git a/synfig-studio/trunk/src/gtkmm/dock_navigator.cpp b/synfig-studio/trunk/src/gtkmm/dock_navigator.cpp index cc48ab6..c558960 100644 --- a/synfig-studio/trunk/src/gtkmm/dock_navigator.cpp +++ b/synfig-studio/trunk/src/gtkmm/dock_navigator.cpp @@ -6,6 +6,7 @@ ** ** \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 @@ -166,8 +167,8 @@ void studio::Widget_NavView::on_start_render() renderer = new AsyncRenderer(targ); renderer->signal_success().connect(sigc::mem_fun(*this,&Widget_NavView::on_finish_render)); - renderer->start(); dirty = false; + renderer->start(); } } @@ -255,8 +256,13 @@ static double zoom_to_unit(double f) }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())));