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;
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]));
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();
if(basename(filename)[0]=='.')
return;
- // If we aren't an absolute path, turn outselves into one
+ // If we aren't an absolute path, turn ourselves into one
if(!is_absolute_path(filename))
filename=absolute_path(filename);
canvas->rend_desc().set_flags(RendDesc::PX_ASPECT|RendDesc::IM_SPAN);
canvas->set_file_name(file_name);
- Instance::create(canvas)->find_canvas_view(canvas)->canvas_properties.present();
+ handle<Instance> instance = Instance::create(canvas);
+
+ if (!getenv("SYNFIG_DISABLE_NEW_CANVAS_EDIT_PROPERTIES"))
+ instance->find_canvas_view(canvas)->canvas_properties.present();
}
void