From c516046c9cb6577762bc43bc24b067b5ae9c40ee Mon Sep 17 00:00:00 2001 From: Alfredo Braunstein Date: Fri, 6 Jun 2003 08:06:24 +0000 Subject: [PATCH] add Dialogs::visible to avoid the madness of filling unexistent dialogs git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@7119 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/BufferView_pimpl.C | 2 ++ src/ChangeLog | 4 ++++ src/frontends/ChangeLog | 4 ++++ src/frontends/Dialogs.C | 10 ++++++++++ src/frontends/Dialogs.h | 3 +++ src/insets/ChangeLog | 4 ++++ src/insets/mailinset.C | 5 +++-- 7 files changed, 30 insertions(+), 2 deletions(-) diff --git a/src/BufferView_pimpl.C b/src/BufferView_pimpl.C index d167010f8e..04f1f311a3 100644 --- a/src/BufferView_pimpl.C +++ b/src/BufferView_pimpl.C @@ -1148,6 +1148,8 @@ bool BufferView::Pimpl::dispatch(FuncRequest const & ev_in) } case LFUN_PARAGRAPH_UPDATE: { + if (!bv_->owner()->getDialogs().visible("paragraph")) + break; Paragraph const * par = &*bv_->getLyXText()->cursor.par(); if (!par) break; diff --git a/src/ChangeLog b/src/ChangeLog index d467c94718..35fff47a8f 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,7 @@ +2003-06-06 Alfredo Braunstein + + * BufferView_pimpl.C (dispatch): use Dialogs::visible + 2003-06-04 Angus Leeming * buffer.C: bump format to 224. diff --git a/src/frontends/ChangeLog b/src/frontends/ChangeLog index 6001e4226c..ffad45d1ac 100644 --- a/src/frontends/ChangeLog +++ b/src/frontends/ChangeLog @@ -1,3 +1,7 @@ +2003-06-06 Alfredo Braunstein + + * Dialogs.[Ch] (visible): added. + 2003-06-03 John Levon * lyx_gui.h: add sync_events() diff --git a/src/frontends/Dialogs.C b/src/frontends/Dialogs.C index 8f31720b85..82cac2cb64 100644 --- a/src/frontends/Dialogs.C +++ b/src/frontends/Dialogs.C @@ -110,6 +110,16 @@ void Dialogs::show(string const & name, string const & data, InsetBase * inset) } +bool Dialogs::visible(string const & name) const +{ + std::map::const_iterator it = + dialogs_.find(name); + if (it == dialogs_.end()) + return false; + return it->second.get()->isVisible(); +} + + void Dialogs::update(string const & name, string const & data) { Dialog * dialog = find(name); diff --git a/src/frontends/Dialogs.h b/src/frontends/Dialogs.h index 1aa3eea30d..60e0fef371 100644 --- a/src/frontends/Dialogs.h +++ b/src/frontends/Dialogs.h @@ -119,6 +119,9 @@ public: */ void update(string const & name, string const & data); + /// is the dialog currently visible? + bool visible(string const & name) const; + /** All Dialogs of the given \param name will be closed if they are connected to the given \param inset. */ diff --git a/src/insets/ChangeLog b/src/insets/ChangeLog index 5c98849ab3..04ae9437da 100644 --- a/src/insets/ChangeLog +++ b/src/insets/ChangeLog @@ -1,3 +1,7 @@ +2003-06-06 Alfredo Braunstein + + * mailinset.C (updateDialog): use Dialogs::visible + 2003-06-04 Angus Leeming * graphicinset.C (draw): add a comment for the #if 0 block. diff --git a/src/insets/mailinset.C b/src/insets/mailinset.C index b7563a0cb0..8eb06f9964 100644 --- a/src/insets/mailinset.C +++ b/src/insets/mailinset.C @@ -29,8 +29,9 @@ void MailInset::showDialog(BufferView * bv) const void MailInset::updateDialog(BufferView * bv) const { - lyx::Assert(bv); - bv->owner()->getDialogs().update(name(), inset2string()); + lyx::Assert(bv); + if(bv->owner()->getDialogs().visible(name())) + bv->owner()->getDialogs().update(name(), inset2string()); } -- 2.39.2