summaryrefslogtreecommitdiffstats
path: root/src/progs/ingenuity/PatchWindow.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/progs/ingenuity/PatchWindow.cpp')
-rw-r--r--src/progs/ingenuity/PatchWindow.cpp19
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)