From 8e88c36e20ca6b2446a0ccae6656ab255ebbd115 Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=BCrgen=20Vigna?= Date: Mon, 3 Dec 2001 14:46:22 +0000 Subject: [PATCH] Fixed updating of non locked inset inside other insets if requested! git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@3139 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/insets/ChangeLog | 1 + src/insets/insettext.C | 44 ++++++++++++++++++++++++++++-------------- 2 files changed, 31 insertions(+), 14 deletions(-) diff --git a/src/insets/ChangeLog b/src/insets/ChangeLog index 00c3101df9..b0cb4a1c50 100644 --- a/src/insets/ChangeLog +++ b/src/insets/ChangeLog @@ -2,6 +2,7 @@ * insettext.C (updateInsetInInset): use lt variable to forbid changes of LyXText in an update call. + (updateInsetInInset): fixed updating of non locked insets! 2001-12-01 John Levon diff --git a/src/insets/insettext.C b/src/insets/insettext.C index 8b70df3e27..e3b43f0f1a 100644 --- a/src/insets/insettext.C +++ b/src/insets/insettext.C @@ -835,29 +835,45 @@ bool InsetText::unlockInsetInInset(BufferView * bv, UpdatableInset * inset, bool InsetText::updateInsetInInset(BufferView * bv, Inset * inset) { - if (!the_locking_inset) - return false; - if (the_locking_inset != inset) { - getLyXText(bv)->updateInset(bv, the_locking_inset); - setUpdateStatus(bv, CURSOR_PAR); - return the_locking_inset->updateInsetInInset(bv, inset); - } bool clear = false; if (!lt) { lt = getLyXText(bv); clear = true; } - if (lt->updateInset(bv, inset)) { + if (!the_locking_inset) { + bool found = lt->updateInset(bv, inset); if (clear) lt = 0; - updateLocal(bv, CURSOR_PAR, false); - } else if (clear) + if (found) + setUpdateStatus(bv, NONE); + return found; + } + if (the_locking_inset != inset) { +#if 0 + lt->updateInset(bv, the_locking_inset); + setUpdateStatus(bv, CURSOR_PAR); +#endif + bool found = the_locking_inset->updateInsetInInset(bv, inset); + if (clear) + lt = 0; + if (found) + setUpdateStatus(bv, CURSOR_PAR); + return found; + } + bool found = lt->updateInset(bv, inset); + if (clear) lt = 0; - if (cpar(bv) == inset_par && cpos(bv) == inset_pos) { - inset_x = cx(bv) - top_x + drawTextXOffset; - inset_y = cy(bv) + drawTextYOffset; + if (found) { + setUpdateStatus(bv, CURSOR_PAR); +#if 0 + updateLocal(bv, CURSOR_PAR, false); +#endif + if (cpar(bv) == inset_par && cpos(bv) == inset_pos) { + inset_x = cx(bv) - top_x + drawTextXOffset; + inset_y = cy(bv) + drawTextYOffset; + } } - return true; + return found; } -- 2.39.2