Prevent the "Gtk-CRITICAL **: gtk_label_set_label: assertion `str != NULL' failed...
[synfig.git] / synfig-studio / trunk / src / gtkmm / canvasview.cpp
index b8f60c3..913a903 100644 (file)
@@ -912,6 +912,10 @@ CanvasView::~CanvasView()
 
        hide();
 
+       // don't be calling on_dirty_preview once this object has been deleted;
+       // this was causing a crash before
+       canvas_interface()->signal_dirty_preview().clear();
+
        synfig::info("CanvasView:~CanvasView(): Destructor Finished");
 }
 
@@ -1271,7 +1275,7 @@ CanvasView::init_menus()
                }
        }
 
-       action_group->add( Gtk::Action::create("play", Gtk::StockID("synfig-play")),
+       action_group->add( Gtk::Action::create("play", Gtk::Stock::MEDIA_PLAY),
                sigc::mem_fun(*this, &studio::CanvasView::play)
        );
 
@@ -1579,7 +1583,7 @@ CanvasView::init_menus()
                viewmenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("Preview Quality"),qualitymenu));
        }
 
-       viewmenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("synfig-play"),
+       viewmenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::Stock::MEDIA_PLAY,
                sigc::mem_fun(*this, &studio::CanvasView::play)));
        viewmenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("Flipbook Dialog"),
                sigc::mem_fun(*preview_dialog, &studio::Dialog_Preview::present)));
@@ -2833,7 +2837,10 @@ CanvasView::play()
                        studio::App::iteration(false);
 
                if(get_cancel_status())
+               {
+                       is_playing_=false;
                        return;
+               }
        }
        is_playing_=false;