diff options
Diffstat (limited to 'src/progs/ingenuity/PatchWindow.cpp')
-rw-r--r-- | src/progs/ingenuity/PatchWindow.cpp | 19 |
1 files changed, 8 insertions, 11 deletions
diff --git a/src/progs/ingenuity/PatchWindow.cpp b/src/progs/ingenuity/PatchWindow.cpp index edf2e9d0..e429d136 100644 --- a/src/progs/ingenuity/PatchWindow.cpp +++ b/src/progs/ingenuity/PatchWindow.cpp @@ -158,9 +158,15 @@ PatchWindow::set_patch(CountedPtr<PatchModel> patch, CountedPtr<PatchView> view) m_patch = patch; - m_view = view ? view : PatchView::create(patch); - assert(m_view); + m_view = m_breadcrumb_box->view(patch->path()); + + if (!m_view) + m_view = PatchView::create(patch); + else + assert(!view || m_view == view); + assert(m_view); + // Add view to ourself if (m_view->get_parent()) m_view->get_parent()->remove(*m_view); @@ -196,8 +202,6 @@ PatchWindow::set_patch(CountedPtr<PatchModel> patch, CountedPtr<PatchView> view) else m_menu_destroy_patch->set_sensitive(true); - m_patch->destroyed_sig.connect(sigc::mem_fun(this, &PatchWindow::patch_destroyed)); - show_all(); m_enable_signal = true; @@ -205,13 +209,6 @@ PatchWindow::set_patch(CountedPtr<PatchModel> patch, CountedPtr<PatchView> view) void -PatchWindow::patch_destroyed() -{ - App::instance().window_factory()->remove_patch_window(this); -} - - -void PatchWindow::event_show_engine() { if (m_patch) |