Regression was introduced in
40944574c
Compared to before
40944574c 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.
-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;
{
boost::shared_ptr<Send> send;
boost::shared_ptr<InternalSend> internal_send;
Window* w = get_processor_ui (plugin_insert);
if (w == 0) {
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);
plugin_ui->set_title (generate_processor_title (plugin_insert));
set_processor_ui (plugin_insert, plugin_ui);
ProcessorWindowProxy* proxy = find_window_proxy (processor);
if (proxy) {
ProcessorWindowProxy* proxy = find_window_proxy (processor);
if (proxy) {
+ proxy->set_custom_ui_mode (Config->get_use_plugin_own_gui ());
ProcessorWindowProxy* proxy = find_window_proxy (processor);
if (proxy) {
ProcessorWindowProxy* proxy = find_window_proxy (processor);
if (proxy) {
+ proxy->set_custom_ui_mode (false);
, _processor_box (box)
, _processor (processor)
, is_custom (false)
, _processor_box (box)
, _processor (processor)
, is_custom (false)
-
- if (_window && (is_custom != Config->get_use_plugin_own_gui ())) {
+ if (_window && (is_custom != want_custom)) {
/* drop existing window - wrong type */
drop_window ();
}
/* drop existing window - wrong type */
drop_window ();
}
- _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);
void
ProcessorWindowProxy::toggle ()
{
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 ();
}
/* drop existing window - wrong type */
drop_window ();
}
+ is_custom = want_custom;
WM::ProxyBase::toggle ();
}
WM::ProxyBase::toggle ();
}
ARDOUR::SessionHandlePtr* session_handle();
void toggle();
ARDOUR::SessionHandlePtr* session_handle();
void toggle();
+ void set_custom_ui_mode(bool use_custom) { want_custom = use_custom; }
ProcessorBox* _processor_box;
boost::weak_ptr<ARDOUR::Processor> _processor;
bool is_custom;
ProcessorBox* _processor_box;
boost::weak_ptr<ARDOUR::Processor> _processor;
bool is_custom;
};
class ProcessorEntry : public Gtkmm2ext::DnDVBoxChild, public sigc::trackable
};
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_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>);
Gtk::Window* get_generic_editor_window (boost::shared_ptr<ARDOUR::Processor>);
void edit_processor (boost::shared_ptr<ARDOUR::Processor>);