Typo: 'consistant' -> 'consistent'.
[synfig.git] / synfig-studio / trunk / src / gtkmm / workarea.cpp
index 41da0b5..0dd4ffc 100644 (file)
@@ -7,6 +7,7 @@
 **     \legal
 **     Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley
 **     Copyright 2006 Yue Shi Lai
+**     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
@@ -809,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()
 {
@@ -2173,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;
@@ -2624,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