}
Gtk::Window*
-ProcessorBox::get_editor_window (boost::shared_ptr<Processor> processor)
+ProcessorBox::get_editor_window (boost::shared_ptr<Processor> processor, bool use_custom)
{
boost::shared_ptr<Send> send;
boost::shared_ptr<InternalSend> internal_send;
Window* w = get_processor_ui (plugin_insert);
if (w == 0) {
-
- plugin_ui = new PluginUIWindow (plugin_insert, false, Config->get_use_plugin_own_gui());
+ plugin_ui = new PluginUIWindow (plugin_insert, false, use_custom);
plugin_ui->set_title (generate_processor_title (plugin_insert));
set_processor_ui (plugin_insert, plugin_ui);
ProcessorWindowProxy* proxy = find_window_proxy (processor);
if (proxy) {
+ proxy->set_custom_ui_mode (Config->get_use_plugin_own_gui ());
proxy->toggle ();
}
}
ProcessorWindowProxy* proxy = find_window_proxy (processor);
if (proxy) {
+ proxy->set_custom_ui_mode (false);
proxy->toggle ();
}
}
, _processor_box (box)
, _processor (processor)
, is_custom (false)
+ , want_custom (false)
{
}
if (!p) {
return 0;
}
-
- if (_window && (is_custom != Config->get_use_plugin_own_gui ())) {
+ if (_window && (is_custom != want_custom)) {
/* drop existing window - wrong type */
drop_window ();
}
return 0;
}
- _window = _processor_box->get_editor_window (p);
- is_custom = Config->get_use_plugin_own_gui();
+ is_custom = want_custom;
+ _window = _processor_box->get_editor_window (p, is_custom);
if (_window) {
setup ();
void
ProcessorWindowProxy::toggle ()
{
- if (_window && (is_custom != Config->get_use_plugin_own_gui ())) {
+ if (_window && (is_custom != want_custom)) {
/* drop existing window - wrong type */
drop_window ();
}
+ is_custom = want_custom;
WM::ProxyBase::toggle ();
}
ARDOUR::SessionHandlePtr* session_handle();
void toggle();
+ void set_custom_ui_mode(bool use_custom) { want_custom = use_custom; }
bool marked;
ProcessorBox* _processor_box;
boost::weak_ptr<ARDOUR::Processor> _processor;
bool is_custom;
+ bool want_custom;
};
class ProcessorEntry : public Gtkmm2ext::DnDVBoxChild, public sigc::trackable
Gtk::Window* get_processor_ui (boost::shared_ptr<ARDOUR::Processor>) const;
/* a WindowProxy object can use this */
- Gtk::Window* get_editor_window (boost::shared_ptr<ARDOUR::Processor>);
+ Gtk::Window* get_editor_window (boost::shared_ptr<ARDOUR::Processor>, bool);
Gtk::Window* get_generic_editor_window (boost::shared_ptr<ARDOUR::Processor>);
void edit_processor (boost::shared_ptr<ARDOUR::Processor>);