From 499d2a991dfc55ff3c785222c4a4a105d3599d90 Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=BCrgen=20Spitzm=C3=BCller?= Date: Mon, 24 Mar 2008 18:22:54 +0000 Subject: [PATCH] * src/BufferView.cpp: - reintroduce check for dispatch state * src/insets/InsetCaption.cpp: - disable LFUN_INSET_TOGGLE git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23929 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/BufferView.cpp | 44 ++++++++++++++++++------------------- src/insets/InsetCaption.cpp | 1 + 2 files changed, 22 insertions(+), 23 deletions(-) diff --git a/src/BufferView.cpp b/src/BufferView.cpp index 5888e676fa..9b3ae322bb 100644 --- a/src/BufferView.cpp +++ b/src/BufferView.cpp @@ -877,14 +877,12 @@ FuncStatus BufferView::getStatus(FuncRequest const & cmd) break; } // if it did not work, try the underlying inset. - inset = &cur.inset(); - if (inset) { - inset->getStatus(cur, tmpcmd, flag); - return flag; - break; - } - // else disable - flag.enabled(false); + if (!inset || !cur.result().dispatched()) + getStatus(tmpcmd); + + if (!cur.result().dispatched()) + // else disable + flag.enabled(false); break; } @@ -900,14 +898,12 @@ FuncStatus BufferView::getStatus(FuncRequest const & cmd) break; } // if it did not work, try the underlying inset. - inset = &cur.inset(); - if (inset) { - inset->getStatus(cur, tmpcmd, flag); - return flag; - break; - } - // else disable - flag.enabled(false); + if (!inset || !cur.result().dispatched()) + getStatus(tmpcmd); + + if (!cur.result().dispatched()) + // else disable + flag.enabled(false); break; } @@ -1335,9 +1331,10 @@ bool BufferView::dispatch(FuncRequest const & cmd) } } // if it did not work, try the underlying inset. - else if (&cur.inset()) - cur.inset().dispatch(cur, tmpcmd); - else + if (!inset || !cur.result().dispatched()) + cur.dispatch(tmpcmd); + + if (!cur.result().dispatched()) // It did not work too; no action needed. break; cur.clearSelection(); @@ -1354,9 +1351,10 @@ bool BufferView::dispatch(FuncRequest const & cmd) if (inset) inset->dispatch(cur, tmpcmd); // if it did not work, try the underlying inset. - else if (&cur.inset()) - cur.inset().dispatch(cur, tmpcmd); - else + if (!inset || !cur.result().dispatched()) + cur.dispatch(tmpcmd); + + if (!cur.result().dispatched()) // It did not work too; no action needed. break; cur.clearSelection(); @@ -1572,7 +1570,7 @@ void BufferView::mouseEventDispatch(FuncRequest const & cmd0) // Now dispatch to the temporary cursor. If the real cursor should // be modified, the inset's dispatch has to do so explicitly. - if (!cur.result().dispatched()) + if (!inset || !cur.result().dispatched()) cur.dispatch(cmd); // Notify left insets diff --git a/src/insets/InsetCaption.cpp b/src/insets/InsetCaption.cpp index 4d02187e09..9da0292199 100644 --- a/src/insets/InsetCaption.cpp +++ b/src/insets/InsetCaption.cpp @@ -194,6 +194,7 @@ bool InsetCaption::getStatus(Cursor & cur, FuncRequest const & cmd, case LFUN_BREAK_PARAGRAPH: case LFUN_BREAK_PARAGRAPH_SKIP: + case LFUN_INSET_TOGGLE: status.enabled(false); return true; -- 2.39.2