Skip to content

Commit

Permalink
Merge pull request #1792 from KLayout/bugfix/issue-1789
Browse files Browse the repository at this point in the history
Fixing bug #1789 (Crash by add Text to hidden layer)
  • Loading branch information
klayoutmatthias authored Jul 21, 2024
2 parents a6c0718 + 8b1930e commit 951905d
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 9 deletions.
28 changes: 19 additions & 9 deletions src/edt/edt/edtServiceImpl.cc
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@
#include "layLayoutViewBase.h"

#if defined(HAVE_QT)
# include "layLayoutView.h"
# include "layTipDialog.h"
# include "layDragDropData.h"
#endif
Expand Down Expand Up @@ -72,6 +73,24 @@ ShapeEditService::configure (const std::string &name, const std::string &value)
}
}

void
ShapeEditService::activated ()
{
edt::Service::activated ();

#if defined(HAVE_QT)
if (view () == lay::LayoutView::current ()) {
lay::LayerPropertiesConstIterator cl = view ()->current_layer ();
if (! cl.is_null () && ! cl->visible (true)) {
lay::TipDialog td (QApplication::activeWindow (),
tl::to_string (tr ("You are about to draw on a hidden layer. The result won't be visible.")),
"drawing-on-invisible-layer");
td.exec_dialog ();
}
}
#endif
}

void
ShapeEditService::get_edit_layer ()
{
Expand All @@ -89,15 +108,6 @@ ShapeEditService::get_edit_layer ()
throw tl::Exception (tl::to_string (tr ("Please select a cell first")));
}

#if defined(HAVE_QT)
if (! cl->visible (true)) {
lay::TipDialog td (QApplication::activeWindow (),
tl::to_string (tr ("You are about to draw on a hidden layer. The result won't be visible.")),
"drawing-on-invisible-layer");
td.exec_dialog ();
}
#endif

if (layer < 0 || ! cv->layout ().is_valid_layer ((unsigned int) layer)) {

if (cl->has_children ()) {
Expand Down
1 change: 1 addition & 0 deletions src/edt/edt/edtServiceImpl.h
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@ class ShapeEditService
virtual void tap (const db::DPoint &initial);

virtual bool configure (const std::string &name, const std::string &value);
virtual void activated ();

protected:
std::pair <bool, db::DPoint> interpolate (const db::DPoint &m, const db::DPoint &o, const db::DPoint &p) const;
Expand Down
2 changes: 2 additions & 0 deletions src/lay/lay/layMainWindow.cc
Original file line number Diff line number Diff line change
Expand Up @@ -188,6 +188,8 @@ MainWindow::MainWindow (QApplication *app, const char *name, bool undo_enabled)
mp_app (app),
m_manager (undo_enabled)
{
setAnimated (false);

m_dispatcher.set_menu_parent_widget (this);
m_dispatcher.make_menu ();

Expand Down

0 comments on commit 951905d

Please sign in to comment.