mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-16 11:46:25 +01:00
Restore 'Edit with basic controls' plugin UI functionality.
Regression was introduced in40944574cCompared to before40944574cit 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
2 changed files with 13 additions and 9 deletions
|
|
@ -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…
Add table
Add a link
Reference in a new issue