Restore 'Edit with basic controls' plugin UI functionality.
Regression was introduced in40944574c
Compared to before40944574c
it is no longer possible to have both custom and basic open at the same time. On the upside window stacking and raise-to-top works properly.
This commit is contained in:
parent
126d592e8a
commit
1acf8bdc67
@ -2040,7 +2040,7 @@ ProcessorBox::one_processor_can_be_edited ()
|
||||
}
|
||||
|
||||
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;
|
||||
@ -2119,8 +2119,7 @@ ProcessorBox::get_editor_window (boost::shared_ptr<Processor> processor)
|
||||
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);
|
||||
|
||||
@ -2438,6 +2437,7 @@ ProcessorBox::edit_processor (boost::shared_ptr<Processor> processor)
|
||||
ProcessorWindowProxy* proxy = find_window_proxy (processor);
|
||||
|
||||
if (proxy) {
|
||||
proxy->set_custom_ui_mode (Config->get_use_plugin_own_gui ());
|
||||
proxy->toggle ();
|
||||
}
|
||||
}
|
||||
@ -2452,6 +2452,7 @@ ProcessorBox::generic_edit_processor (boost::shared_ptr<Processor> processor)
|
||||
ProcessorWindowProxy* proxy = find_window_proxy (processor);
|
||||
|
||||
if (proxy) {
|
||||
proxy->set_custom_ui_mode (false);
|
||||
proxy->toggle ();
|
||||
}
|
||||
}
|
||||
@ -2629,6 +2630,7 @@ ProcessorWindowProxy::ProcessorWindowProxy (string const & name, ProcessorBox* b
|
||||
, _processor_box (box)
|
||||
, _processor (processor)
|
||||
, is_custom (false)
|
||||
, want_custom (false)
|
||||
{
|
||||
|
||||
}
|
||||
@ -2648,8 +2650,7 @@ ProcessorWindowProxy::get (bool create)
|
||||
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 ();
|
||||
}
|
||||
@ -2659,8 +2660,8 @@ ProcessorWindowProxy::get (bool create)
|
||||
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 ();
|
||||
@ -2673,10 +2674,11 @@ ProcessorWindowProxy::get (bool create)
|
||||
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 ();
|
||||
}
|
||||
|
@ -88,6 +88,7 @@ class ProcessorWindowProxy : public WM::ProxyBase
|
||||
|
||||
ARDOUR::SessionHandlePtr* session_handle();
|
||||
void toggle();
|
||||
void set_custom_ui_mode(bool use_custom) { want_custom = use_custom; }
|
||||
|
||||
bool marked;
|
||||
|
||||
@ -95,6 +96,7 @@ class ProcessorWindowProxy : public WM::ProxyBase
|
||||
ProcessorBox* _processor_box;
|
||||
boost::weak_ptr<ARDOUR::Processor> _processor;
|
||||
bool is_custom;
|
||||
bool want_custom;
|
||||
};
|
||||
|
||||
class ProcessorEntry : public Gtkmm2ext::DnDVBoxChild, public sigc::trackable
|
||||
@ -257,7 +259,7 @@ class ProcessorBox : public Gtk::HBox, public PluginInterestedObject, public ARD
|
||||
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>);
|
||||
|
Loading…
Reference in New Issue
Block a user