X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-studio%2Ftrunk%2Fsrc%2Fgtkmm%2Fapp.cpp;h=2730a4abb3b3dfa9216cb809ff592ac61ba90867;hb=5f937f1d74ccc6dc54f876e62cdea574e7cb56bf;hp=b8e82000043800c708f29359c9c4e9c5eda70db3;hpb=7b0220104af211b8f7bb8ee1b2530a1d97015e78;p=synfig.git diff --git a/synfig-studio/trunk/src/gtkmm/app.cpp b/synfig-studio/trunk/src/gtkmm/app.cpp index b8e8200..2730a4a 100644 --- a/synfig-studio/trunk/src/gtkmm/app.cpp +++ b/synfig-studio/trunk/src/gtkmm/app.cpp @@ -262,6 +262,25 @@ void studio::App::set_max_recent_files(int x) { max_recent_files_=x; } static synfig::String app_base_path_; namespace studio { + +bool +really_delete_widget(Gtk::Widget *widget) +{ + synfig::info("really delete %x", (unsigned int)widget); + delete widget; + return false; +} + +// nasty workaround - when we've finished with a popup menu, we want to delete it +// attaching to the signal_hide() signal gets us here before the action on the menu has run, +// so schedule the real delete to happen in 50ms, giving the action a chance to run +void +delete_widget(Gtk::Widget *widget) +{ + synfig::info("delete %x", (unsigned int)widget); + Glib::signal_timeout().connect(sigc::bind(sigc::ptr_fun(&really_delete_widget), widget), 50); +} + }; // END of namespace studio studio::StateManager* state_manager; @@ -741,7 +760,8 @@ init_ui_manager() DEFINE_ACTION("dialog-flipbook", _("Preview Dialog")); DEFINE_ACTION("sound", _("Sound File")); DEFINE_ACTION("options", _("Options")); - DEFINE_ACTION("close", _("Close")); + DEFINE_ACTION("close", _("Close View")); + DEFINE_ACTION("close-document", _("Close Document")); DEFINE_ACTION("undo", Gtk::StockID("gtk-undo")); @@ -861,6 +881,7 @@ init_ui_manager() " " " " " " +" " " " " " " " @@ -1091,7 +1112,7 @@ init_ui_manager() App::App(int *argc, char ***argv): Gtk::Main(argc,argv), - IconControler(etl::dirname((*argv)[0])) + IconController(etl::dirname((*argv)[0])) { app_base_path_=etl::dirname(etl::dirname((*argv)[0])); @@ -1103,8 +1124,8 @@ App::App(int *argc, char ***argv): gdk_rgb_init(); - // don't call thread_init() if threads are already initialised - // on some machines bonobo_init() initialised threads before we get here + // don't call thread_init() if threads are already initialized + // on some machines bonobo_init() initialized threads before we get here if (!g_thread_supported()) Glib::thread_init();