comparison src/graphics.cc @ 14016:8feb25ecddaf

close all graphics toolkits before exit * graphics.h (graphics_toolkit::close_all_toolkits): Move here from graphics.cc. Ensure that the toolkit is closed and deleted properly. * toplev.cc (clean_up_and_exit): Call graphics_toolkit::close_all_toolkits.
author John W. Eaton <jwe@octave.org>
date Thu, 08 Dec 2011 17:22:57 -0500
parents 907d03def9d5
children e3bed294b117
comparison
equal deleted inserted replaced
14015:77adde2e79ac 14016:8feb25ecddaf
2886 { 2886 {
2887 if (available_toolkits.size () == 0) 2887 if (available_toolkits.size () == 0)
2888 register_toolkit (new gnuplot_toolkit ()); 2888 register_toolkit (new gnuplot_toolkit ());
2889 2889
2890 return available_toolkits["gnuplot"]; 2890 return available_toolkits["gnuplot"];
2891 }
2892
2893 void
2894 graphics_toolkit::close_all_toolkits (void)
2895 {
2896 while (! available_toolkits.empty ())
2897 {
2898 available_toolkits_iterator p = available_toolkits.begin ();
2899
2900 p->second.close ();
2901
2902 available_toolkits.erase (p);
2903 }
2904 } 2891 }
2905 2892
2906 std::map<std::string, graphics_toolkit> graphics_toolkit::available_toolkits; 2893 std::map<std::string, graphics_toolkit> graphics_toolkit::available_toolkits;
2907 2894
2908 // --------------------------------------------------------------------- 2895 // ---------------------------------------------------------------------