mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-08 15:54:57 +01:00
Fix transient parent for plugin windows w/detached mixer
This follows f3fbf58185 which unconditionally set the main window
as transient parent. However when detaching the mixer, plugins should
be transient for the detached parent window.
This commit is contained in:
parent
3c25281203
commit
6dc91348d7
1 changed files with 17 additions and 0 deletions
|
|
@ -4238,6 +4238,10 @@ ProcessorBox::edit_processor (boost::shared_ptr<Processor> processor)
|
||||||
if (proxy) {
|
if (proxy) {
|
||||||
proxy->set_custom_ui_mode (true);
|
proxy->set_custom_ui_mode (true);
|
||||||
proxy->show_the_right_window ();
|
proxy->show_the_right_window ();
|
||||||
|
|
||||||
|
Gtk::Window* tlw = dynamic_cast<Gtk::Window*> (get_toplevel ());
|
||||||
|
assert (tlw && proxy->get (false));
|
||||||
|
proxy->get ()->set_transient_for (*tlw);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -4259,6 +4263,10 @@ ProcessorBox::generic_edit_processor (boost::shared_ptr<Processor> processor)
|
||||||
if (proxy) {
|
if (proxy) {
|
||||||
proxy->set_custom_ui_mode (false);
|
proxy->set_custom_ui_mode (false);
|
||||||
proxy->show_the_right_window ();
|
proxy->show_the_right_window ();
|
||||||
|
|
||||||
|
Gtk::Window* tlw = dynamic_cast<Gtk::Window*> (get_toplevel ());
|
||||||
|
assert (tlw && proxy->get (false));
|
||||||
|
proxy->get ()->set_transient_for (*tlw);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -4272,6 +4280,10 @@ ProcessorBox::manage_pins (boost::shared_ptr<Processor> processor)
|
||||||
if (proxy) {
|
if (proxy) {
|
||||||
proxy->get (true);
|
proxy->get (true);
|
||||||
proxy->present();
|
proxy->present();
|
||||||
|
|
||||||
|
Gtk::Window* tlw = dynamic_cast<Gtk::Window*> (get_toplevel ());
|
||||||
|
assert (tlw);
|
||||||
|
proxy->get ()->set_transient_for (*tlw);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -4557,6 +4569,11 @@ ProcessorWindowProxy::show_the_right_window (bool show_not_toggle)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
toggle ();
|
toggle ();
|
||||||
|
|
||||||
|
if (_window) {
|
||||||
|
/* clear any transients if window is toggled externally (ctrl surfaces) */
|
||||||
|
_window->unset_transient_for ();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue