diff --git a/src/lay/lay/layMainWindow.cc b/src/lay/lay/layMainWindow.cc index 21b7917b0..be55259cc 100644 --- a/src/lay/lay/layMainWindow.cc +++ b/src/lay/lay/layMainWindow.cc @@ -2931,6 +2931,7 @@ MainWindow::close_view (int index) // last view closed + lay::LayoutView::set_current (0); current_view_changed (); clear_current_pos (); diff --git a/src/laybasic/laybasic/layLayoutViewBase.cc b/src/laybasic/laybasic/layLayoutViewBase.cc index e124d01b0..30f242720 100644 --- a/src/laybasic/laybasic/layLayoutViewBase.cc +++ b/src/laybasic/laybasic/layLayoutViewBase.cc @@ -3315,7 +3315,7 @@ LayoutViewBase::create_layout (const std::string &technology, bool add_cellview, { const db::Technology *tech = db::Technologies::instance ()->technology_by_name (technology); - db::Layout *layout = new db::Layout (manager ()); + db::Layout *layout = new db::Layout (m_editable, manager ()); if (tech) { layout->dbu (tech->dbu ()); } diff --git a/src/laybasic/unit_tests/layLayerProperties.cc b/src/laybasic/unit_tests/layLayerProperties.cc index 64180e22c..f6175a348 100644 --- a/src/laybasic/unit_tests/layLayerProperties.cc +++ b/src/laybasic/unit_tests/layLayerProperties.cc @@ -1309,6 +1309,7 @@ TEST (16) int cv1 = view.create_layout ("", true, false); db::Layout &ly1 = view.cellview (cv1)->layout (); + EXPECT_EQ (ly1.is_editable (), is_editable ()); ly1.insert_layer (db::LayerProperties (1, 0)); ly1.insert_layer (db::LayerProperties (2, 0)); diff --git a/testdata/ruby/layLayoutView.rb b/testdata/ruby/layLayoutView.rb index 14b4b621d..9ec0bd57c 100644 --- a/testdata/ruby/layLayoutView.rb +++ b/testdata/ruby/layLayoutView.rb @@ -535,6 +535,21 @@ class LAYLayoutView_TestClass < TestBase end + # issue-1259 + def test_7 + + # standalone layout view + lv = RBA::LayoutView::new(true) + + assert_equal(lv.is_editable, true) + + lv.create_layout(true) + + layout = lv.active_cellview.layout + assert_equal(layout.is_editable, true) + + end + end load("test_epilogue.rb")