X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-studio%2Ftrunk%2Fsrc%2Fgtkmm%2Finstance.cpp;h=839b55ec3e9802c29e3be0fe9494dde52570e131;hb=37600b4b217caa5e316984ec0b035c5e8f9698af;hp=9ac76fbe1631a4418dc3362139024249bbd8419a;hpb=f1ca5b422d1978374ea49b1d66dd060724065b1a;p=synfig.git diff --git a/synfig-studio/trunk/src/gtkmm/instance.cpp b/synfig-studio/trunk/src/gtkmm/instance.cpp index 9ac76fb..839b55e 100644 --- a/synfig-studio/trunk/src/gtkmm/instance.cpp +++ b/synfig-studio/trunk/src/gtkmm/instance.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 @@ -365,10 +366,7 @@ Instance::close() studio::App::set_selected_instance(0); } else - { - studio::App::set_selected_canvas_view(studio::App::instance_list.front()->canvas_view_list().front()); - //studio::App::set_selected_instance(studio::App::instance_list.front()); - } + studio::App::instance_list.front()->canvas_view_list().front()->present(); } @@ -643,9 +641,17 @@ Instance::safe_revert() bool Instance::safe_close() { - handle uim; - uim=find_canvas_view(get_canvas())->get_ui_interface(); + handle canvas_view = find_canvas_view(get_canvas()); + handle uim=canvas_view->get_ui_interface(); + // if the animation is currently playing, closing the window will cause a crash, + // so don't allow it + if (canvas_view->is_playing()) + { + canvas_view->present(); + App::dialog_error_blocking("Close Error", "The animation is currently playing so the window cannot be closed."); + return false; + } if(get_action_count()) do { @@ -691,7 +697,7 @@ Instance::add_actions_to_group(const Glib::RefPtr& action_grou candidate_list.sort(); if(candidate_list.empty()) - synfig::warning("Action CandidateList is empty!"); + synfig::warning("%s:%d Action CandidateList is empty!", __FILE__, __LINE__); for(iter=candidate_list.begin();iter!=candidate_list.end();++iter) { @@ -731,7 +737,7 @@ Instance::add_actions_to_menu(Gtk::Menu *menu, const synfigapp::Action::ParamLis candidate_list.sort(); if(candidate_list.empty()) - synfig::warning("Action CandidateList is empty!"); + synfig::warning("%s:%d Action CandidateList is empty!", __FILE__, __LINE__); for(iter=candidate_list.begin();iter!=candidate_list.end();++iter) { @@ -800,9 +806,9 @@ Instance::add_actions_to_menu(Gtk::Menu *menu, const synfigapp::Action::ParamLis candidate_list.sort(); if(candidate_list.empty()) - synfig::warning("Action CandidateList is empty!"); + synfig::warning("%s:%d Action CandidateList is empty!", __FILE__, __LINE__); if(candidate_list2.empty()) - synfig::warning("Action CandidateList2 is empty!"); + synfig::warning("%s:%d Action CandidateList2 is empty!", __FILE__, __LINE__); // Seperate out the candidate lists so that there are no conflicts for(iter=candidate_list.begin();iter!=candidate_list.end();++iter)