mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-07 15:25:01 +01:00
store void pointers to processor UIs in Processors, and reset ProcessorWindowProxy objects to use them, so that we can never create 2 windows (UIs) for the same processor
git-svn-id: svn://localhost/ardour2/branches/3.0@8638 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
deee47bcae
commit
b78d036aa0
3 changed files with 39 additions and 0 deletions
|
|
@ -1197,6 +1197,17 @@ ProcessorBox::maybe_add_processor_to_ui_list (boost::weak_ptr<Processor> w)
|
|||
w);
|
||||
|
||||
wp->marked = true;
|
||||
|
||||
/* if the processor already has an existing UI,
|
||||
note that so that we don't recreate it
|
||||
*/
|
||||
|
||||
void* existing_ui = p->get_ui ();
|
||||
|
||||
if (existing_ui) {
|
||||
wp->set (static_cast<Gtk::Window*>(existing_ui));
|
||||
}
|
||||
|
||||
_processor_window_proxies.push_back (wp);
|
||||
ARDOUR_UI::instance()->add_window_proxy (wp);
|
||||
}
|
||||
|
|
@ -2234,6 +2245,9 @@ void
|
|||
ProcessorBox::set_processor_ui (boost::shared_ptr<Processor> p, Gtk::Window* w)
|
||||
{
|
||||
list<ProcessorWindowProxy*>::iterator i = _processor_window_proxies.begin ();
|
||||
|
||||
p->set_ui (w);
|
||||
|
||||
while (i != _processor_window_proxies.end()) {
|
||||
boost::shared_ptr<Processor> t = (*i)->processor().lock ();
|
||||
if (t && t == p) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue