From c1319d2c6738ff3e72283917ea903f4878298d41 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Lars=20Gullik=20Bj=C3=B8nnes?= Date: Mon, 3 Nov 2003 19:52:47 +0000 Subject: [PATCH] Change DispatchResult semantics a bit. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@8021 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/ChangeLog | 13 +++++++++ src/cursor.C | 8 ++---- src/dispatchresult.h | 18 ++++++++++-- src/insets/ChangeLog | 6 +++- src/insets/insetbibitem.C | 6 ++-- src/insets/insetbibtex.C | 27 ++++++++++++------ src/insets/insetbox.C | 13 +++++++-- src/insets/insetbranch.C | 10 +++---- src/insets/insetcite.C | 2 +- src/insets/insetcollapsable.C | 18 ++++++------ src/insets/insetcommand.C | 4 +-- src/insets/insetert.C | 10 +++---- src/insets/insetexternal.C | 8 +++--- src/insets/insetfloat.C | 4 +-- src/insets/insetfloatlist.C | 4 +-- src/insets/insetgraphics.C | 6 ++-- src/insets/insetinclude.C | 8 +++--- src/insets/insetindex.C | 2 +- src/insets/insetlabel.C | 4 +-- src/insets/insetminipage.C | 4 +-- src/insets/insetnote.C | 6 ++-- src/insets/insetref.C | 2 +- src/insets/insettabular.C | 40 +++++++++++++------------- src/insets/insettext.C | 54 ++++++++++++++++++----------------- src/insets/insettoc.C | 4 +-- src/insets/inseturl.C | 2 +- src/insets/insetwrap.C | 4 +-- src/insets/updatableinset.C | 2 +- src/lyxfunc.C | 13 +++++++-- src/mathed/ChangeLog | 4 +++ src/mathed/formulabase.C | 44 ++++++++++++++-------------- src/mathed/math_gridinset.C | 2 +- src/mathed/math_hullinset.C | 6 ++-- src/mathed/math_nestinset.C | 2 +- src/mathed/math_scriptinset.C | 2 +- src/mathed/ref_inset.C | 8 +++--- src/text3.C | 2 +- 37 files changed, 214 insertions(+), 158 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 320fe5dee7..14c867dbd0 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,16 @@ +2003-11-03 Lars Gullik Bjønnes + + * text3.C (dispatch): adjust for new DisptchResult semantics. + + * lyxfunc.C (dispatch): handle update when return from + Cursor::dispatch, adjust for new DispatchResult semantics. + + * dispatchresult.h: drop NOUPDATE from dispatch_result_t. Make + DispatchResult(true) mean to not update. Add class functions for + setting dispatched and update, as well as reading. + + * cursor.C (dispatch): don't handle update here + 2003-11-03 Lars Gullik Bjønnes * trans_mgr.h: store t1_ and t2_ in scoped_ptr diff --git a/src/cursor.C b/src/cursor.C index 32257acfc0..e6e59eae0e 100644 --- a/src/cursor.C +++ b/src/cursor.C @@ -32,12 +32,8 @@ DispatchResult Cursor::dispatch(FuncRequest const & cmd) DispatchResult res = data_[i].inset_->dispatch(cmd); lyxerr << " result: " << res.val() << endl; - if (res.dispatched()) { - if (res.val() != NOUPDATE) { - //update(); - } - return DispatchResult(true); - } + if (res.dispatched()) + return res; lyxerr << "# unhandled result: " << res.val() << endl; } diff --git a/src/dispatchresult.h b/src/dispatchresult.h index 5ecfb35dbb..1e4d801eef 100644 --- a/src/dispatchresult.h +++ b/src/dispatchresult.h @@ -30,13 +30,13 @@ */ enum dispatch_result_t { NONE = 0, - NOUPDATE, FINISHED, FINISHED_RIGHT, FINISHED_UP, FINISHED_DOWN }; + /** \c DispatchResult is a wrapper for dispatch_result_t. * It can be forward-declared and passed as a function argument without * having to expose insetbase.h. @@ -47,15 +47,27 @@ public: : dispatched_(false), val_(NONE) {} explicit DispatchResult(bool dis) - : dispatched_(dis), val_(NONE) {} + : dispatched_(dis), update_(false), val_(NONE) {} + DispatchResult(bool dis, bool update) + : dispatched_(dis), update_(true), val_(NONE) {} DispatchResult(bool dis, dispatch_result_t val) - : dispatched_(dis), val_(val) {} + : dispatched_(dis), update_(false), val_(val) {} dispatch_result_t val() const { return val_; } bool dispatched() const { return dispatched_; } + void dispatched(bool dis) { + dispatched_ = dis; + } + bool update() const { + return update_; + } + void update(bool up) { + update_ = up; + } private: bool dispatched_; + bool update_; dispatch_result_t val_; }; diff --git a/src/insets/ChangeLog b/src/insets/ChangeLog index 841eb0b773..5a881ff1cb 100644 --- a/src/insets/ChangeLog +++ b/src/insets/ChangeLog @@ -1,10 +1,14 @@ +2003-11-03 Lars Gullik Bjønnes + + * Inset::dispatch's: adjust for new DispatchResult semantics. + 2003-11-03 Lars Gullik Bjønnes * render_base.h: make clone return an auto_ptr * render_button.C (clone): adjust * render_graphic.C (clone): adjust * render_preview.C (clone): adjust - + * insettheorem.C (clone): return an auto_ptr * insettext.C (priv_dispatch): exception safety diff --git a/src/insets/insetbibitem.C b/src/insets/insetbibitem.C index f76b685cc6..b35f605850 100644 --- a/src/insets/insetbibitem.C +++ b/src/insets/insetbibitem.C @@ -67,17 +67,17 @@ InsetBibitem::priv_dispatch(FuncRequest const & cmd, case LFUN_INSET_EDIT: InsetCommandMailer("bibitem", *this).showDialog(cmd.view()); - return DispatchResult(true); + return DispatchResult(true, true); case LFUN_INSET_MODIFY: { InsetCommandParams p; InsetCommandMailer::string2params(cmd.argument, p); if (p.getCmdName().empty()) - return DispatchResult(true); + return DispatchResult(true, true); setParams(p); cmd.view()->updateInset(this); cmd.view()->fitCursor(); - return DispatchResult(true); + return DispatchResult(true, true); } default: diff --git a/src/insets/insetbibtex.C b/src/insets/insetbibtex.C index 16f791d550..69a40df55e 100644 --- a/src/insets/insetbibtex.C +++ b/src/insets/insetbibtex.C @@ -92,31 +92,40 @@ DispatchResult InsetBibtex::priv_dispatch(FuncRequest const & cmd, idx_type & idx, pos_type & pos) { + DispatchResult result(false); + switch (cmd.action) { case LFUN_INSET_DIALOG_SHOW: InsetCommandMailer("bibtex", *this).showDialog(cmd.view()); - return DispatchResult(true); + result.dispatched(true); + break; + case LFUN_MOUSE_RELEASE: if (button().box().contains(cmd.x, cmd.y)) InsetCommandMailer("bibtex", *this).showDialog(cmd.view()); - return DispatchResult(true); - + result.dispatched(true); + break; + case LFUN_INSET_MODIFY: { InsetCommandParams p; InsetCommandMailer::string2params(cmd.argument, p); - if (p.getCmdName().empty()) - return DispatchResult(true); - setParams(p); - return DispatchResult(true); + if (!p.getCmdName().empty()) + setParams(p); + result.dispatched(true); + result.update(true); } - + break; + default: - return InsetCommand::priv_dispatch(cmd, idx, pos); + result = InsetCommand::priv_dispatch(cmd, idx, pos); + break; } + return result; } + string const InsetBibtex::getScreenLabel(Buffer const &) const { return _("BibTeX Generated References"); diff --git a/src/insets/insetbox.C b/src/insets/insetbox.C index 36842210d9..4a8ef7aa01 100644 --- a/src/insets/insetbox.C +++ b/src/insets/insetbox.C @@ -169,6 +169,7 @@ DispatchResult InsetBox::priv_dispatch(FuncRequest const & cmd, idx_type & idx, pos_type & pos) { + DispatchResult result(false); BufferView * bv = cmd.view(); switch (cmd.action) { @@ -177,11 +178,14 @@ InsetBox::priv_dispatch(FuncRequest const & cmd, InsetBoxMailer::string2params(cmd.argument, params_); setButtonLabel(); bv->updateInset(this); - return DispatchResult(true); + result.dispatched(true); + result.update(true); + break; } case LFUN_INSET_DIALOG_UPDATE: InsetBoxMailer(*this).updateDialog(bv); - return DispatchResult(true); + result.dispatched(true); + break; case LFUN_MOUSE_RELEASE: if (cmd.button() == mouse_button::button3 && hitButton(cmd)) { @@ -191,8 +195,11 @@ InsetBox::priv_dispatch(FuncRequest const & cmd, // fallthrough: default: - return InsetCollapsable::priv_dispatch(cmd, idx, pos); + result = InsetCollapsable::priv_dispatch(cmd, idx, pos); + break; } + + return result; } diff --git a/src/insets/insetbranch.C b/src/insets/insetbranch.C index b3416ae9dc..4cc82711fe 100644 --- a/src/insets/insetbranch.C +++ b/src/insets/insetbranch.C @@ -123,23 +123,23 @@ InsetBranch::priv_dispatch(FuncRequest const & cmd, { BufferView * bv = cmd.view(); switch (cmd.action) { - case LFUN_INSET_MODIFY: - { + case LFUN_INSET_MODIFY: { InsetBranchParams params; InsetBranchMailer::string2params(cmd.argument, params); params_.branch = params.branch; setButtonLabel(); bv->updateInset(this); - return DispatchResult(true); - } + return DispatchResult(true, true); + } case LFUN_INSET_EDIT: if (cmd.button() != mouse_button::button3) return InsetCollapsable::priv_dispatch(cmd, idx, pos); - return DispatchResult(false); + case LFUN_INSET_DIALOG_UPDATE: InsetBranchMailer("branch", *this).updateDialog(bv); return DispatchResult(true); + case LFUN_MOUSE_RELEASE: if (cmd.button() == mouse_button::button3 && hitButton(cmd)) { InsetBranchMailer("branch", *this).showDialog(bv); diff --git a/src/insets/insetcite.C b/src/insets/insetcite.C index ef07a4c401..187c0b663a 100644 --- a/src/insets/insetcite.C +++ b/src/insets/insetcite.C @@ -316,7 +316,7 @@ InsetCitation::priv_dispatch(FuncRequest const & cmd, switch (cmd.action) { case LFUN_INSET_EDIT: InsetCommandMailer("citation", *this).showDialog(cmd.view()); - return DispatchResult(true); + return DispatchResult(true, true); default: return InsetCommand::priv_dispatch(cmd, idx, pos); diff --git a/src/insets/insetcollapsable.C b/src/insets/insetcollapsable.C index 1e9d18f1dd..c5587cb3e0 100644 --- a/src/insets/insetcollapsable.C +++ b/src/insets/insetcollapsable.C @@ -234,7 +234,7 @@ void InsetCollapsable::lfunMouseRelease(FuncRequest const & cmd) bv->updateInset(this); bv->buffer()->markDirty(); } else if (!collapsed_ && cmd.y > button_dim.y2) { - ret = inset.dispatch(adjustCommand(cmd)) == DispatchResult(true); + ret = inset.dispatch(adjustCommand(cmd)) == DispatchResult(true, true); } if (cmd.button() == mouse_button::button3 && !ret) showInsetDialog(bv); @@ -310,14 +310,14 @@ InsetCollapsable::priv_dispatch(FuncRequest const & cmd, if (bv->lockInset(this)) inset.dispatch(cmd); } - return DispatchResult(true); + return DispatchResult(true, true); } #ifdef WITH_WARNINGS #warning Fix this properly in BufferView_pimpl::workAreaButtonRelease #endif if (cmd.button() == mouse_button::button3) - return DispatchResult(true); + return DispatchResult(true, true); UpdatableInset::priv_dispatch(cmd, idx, pos); @@ -327,13 +327,13 @@ InsetCollapsable::priv_dispatch(FuncRequest const & cmd, // it was already collapsed! first_after_edit = true; if (!bv->lockInset(this)) - return DispatchResult(true); + return DispatchResult(true, true); bv->updateInset(this); bv->buffer()->markDirty(); inset.dispatch(cmd); } else { if (!bv->lockInset(this)) - return DispatchResult(true); + return DispatchResult(true, true); if (cmd.y <= button_dim.y2) { FuncRequest cmd1 = cmd; cmd1.y = 0; @@ -341,22 +341,22 @@ InsetCollapsable::priv_dispatch(FuncRequest const & cmd, } else inset.dispatch(adjustCommand(cmd)); } - return DispatchResult(true); + return DispatchResult(true, true); } case LFUN_MOUSE_PRESS: if (!collapsed_ && cmd.y > button_dim.y2) inset.dispatch(adjustCommand(cmd)); - return DispatchResult(true); + return DispatchResult(true, true); case LFUN_MOUSE_MOTION: if (!collapsed_ && cmd.y > button_dim.y2) inset.dispatch(adjustCommand(cmd)); - return DispatchResult(true); + return DispatchResult(true, true); case LFUN_MOUSE_RELEASE: lfunMouseRelease(cmd); - return DispatchResult(true); + return DispatchResult(true, true); default: DispatchResult const result = inset.dispatch(cmd); diff --git a/src/insets/insetcommand.C b/src/insets/insetcommand.C index d8576148ed..451079e749 100644 --- a/src/insets/insetcommand.C +++ b/src/insets/insetcommand.C @@ -100,12 +100,12 @@ InsetCommand::priv_dispatch(FuncRequest const & cmd, idx_type &, pos_type &) setParams(p); cmd.view()->updateInset(this); - return DispatchResult(true); + return DispatchResult(true, true); } case LFUN_INSET_DIALOG_UPDATE: InsetCommandMailer(cmd.argument, *this).updateDialog(cmd.view()); - return DispatchResult(true); + return DispatchResult(true, true); case LFUN_MOUSE_RELEASE: return dispatch(FuncRequest(cmd.view(), LFUN_INSET_EDIT)); diff --git a/src/insets/insetert.C b/src/insets/insetert.C index d3a9417fcd..77814f47e9 100644 --- a/src/insets/insetert.C +++ b/src/insets/insetert.C @@ -466,28 +466,28 @@ InsetERT::priv_dispatch(FuncRequest const & cmd, */ inset.getLyXText(cmd.view())->fullRebreak(); bv->updateInset(this); - result = DispatchResult(true); + result = DispatchResult(true, true); } break; case LFUN_MOUSE_PRESS: lfunMousePress(cmd); - result = DispatchResult(true); + result = DispatchResult(true, true); break; case LFUN_MOUSE_MOTION: lfunMouseMotion(cmd); - result = DispatchResult(true); + result = DispatchResult(true, true); break; case LFUN_MOUSE_RELEASE: lfunMouseRelease(cmd); - result = DispatchResult(true); + result = DispatchResult(true, true); break; case LFUN_LAYOUT: bv->owner()->setLayout(inset.paragraphs.begin()->layout()->name()); - result = DispatchResult(true, NOUPDATE); + result = DispatchResult(true); break; default: diff --git a/src/insets/insetexternal.C b/src/insets/insetexternal.C index 552dd15b62..6611c02da7 100644 --- a/src/insets/insetexternal.C +++ b/src/insets/insetexternal.C @@ -439,7 +439,7 @@ InsetExternal::priv_dispatch(FuncRequest const & cmd, idx_type &, pos_type &) InsetExternalParams p; InsetExternalMailer::string2params(cmd.argument, buffer, p); external::editExternal(p, buffer); - return DispatchResult(true, NOUPDATE); + return DispatchResult(true); } case LFUN_INSET_MODIFY: { @@ -450,17 +450,17 @@ InsetExternal::priv_dispatch(FuncRequest const & cmd, idx_type &, pos_type &) InsetExternalMailer::string2params(cmd.argument, buffer, p); setParams(p, buffer); cmd.view()->updateInset(this); - return DispatchResult(true); + return DispatchResult(true, true); } case LFUN_INSET_DIALOG_UPDATE: InsetExternalMailer(*this).updateDialog(cmd.view()); - return DispatchResult(true); + return DispatchResult(true, true); case LFUN_MOUSE_RELEASE: case LFUN_INSET_EDIT: InsetExternalMailer(*this).showDialog(cmd.view()); - return DispatchResult(true); + return DispatchResult(true, true); default: return DispatchResult(false); diff --git a/src/insets/insetfloat.C b/src/insets/insetfloat.C index 757a55aeb8..6c3aca0cdd 100644 --- a/src/insets/insetfloat.C +++ b/src/insets/insetfloat.C @@ -176,12 +176,12 @@ InsetFloat::priv_dispatch(FuncRequest const & cmd, wide(params_.wide, cmd.view()->buffer()->params()); cmd.view()->updateInset(this); - return DispatchResult(true); + return DispatchResult(true, true); } case LFUN_INSET_DIALOG_UPDATE: { InsetFloatMailer(*this).updateDialog(cmd.view()); - return DispatchResult(true); + return DispatchResult(true, true); } default: diff --git a/src/insets/insetfloatlist.C b/src/insets/insetfloatlist.C index e24621809d..d869762847 100644 --- a/src/insets/insetfloatlist.C +++ b/src/insets/insetfloatlist.C @@ -127,11 +127,11 @@ InsetFloatList::priv_dispatch(FuncRequest const & cmd, case LFUN_MOUSE_RELEASE: if (button().box().contains(cmd.x, cmd.y)) InsetCommandMailer("toc", *this).showDialog(cmd.view()); - return DispatchResult(true); + return DispatchResult(true, true); case LFUN_INSET_DIALOG_SHOW: InsetCommandMailer("toc", *this).showDialog(cmd.view()); - return DispatchResult(true); + return DispatchResult(true, true); default: return InsetCommand::priv_dispatch(cmd, idx, pos); diff --git a/src/insets/insetgraphics.C b/src/insets/insetgraphics.C index 05605ffc18..94225b8c05 100644 --- a/src/insets/insetgraphics.C +++ b/src/insets/insetgraphics.C @@ -203,17 +203,17 @@ InsetGraphics::priv_dispatch(FuncRequest const & cmd, idx_type &, pos_type &) setParams(p); cmd.view()->updateInset(this); } - return DispatchResult(true); + return DispatchResult(true, true); } case LFUN_INSET_DIALOG_UPDATE: InsetGraphicsMailer(*this).updateDialog(cmd.view()); - return DispatchResult(true); + return DispatchResult(true, true); case LFUN_INSET_EDIT: case LFUN_MOUSE_RELEASE: InsetGraphicsMailer(*this).showDialog(cmd.view()); - return DispatchResult(true); + return DispatchResult(true, true); default: return DispatchResult(false); diff --git a/src/insets/insetinclude.C b/src/insets/insetinclude.C index fdb5b0eb98..6f1ae1a670 100644 --- a/src/insets/insetinclude.C +++ b/src/insets/insetinclude.C @@ -120,21 +120,21 @@ InsetInclude::priv_dispatch(FuncRequest const & cmd, idx_type &, pos_type &) set(p, *cmd.view()->buffer()); cmd.view()->updateInset(this); } - return DispatchResult(true); + return DispatchResult(true, true); } case LFUN_INSET_DIALOG_UPDATE: InsetIncludeMailer(*this).updateDialog(cmd.view()); - return DispatchResult(true); + return DispatchResult(true, true); case LFUN_MOUSE_RELEASE: if (button_.box().contains(cmd.x, cmd.y)) InsetIncludeMailer(*this).showDialog(cmd.view()); - return DispatchResult(true); + return DispatchResult(true, true); case LFUN_INSET_DIALOG_SHOW: InsetIncludeMailer(*this).showDialog(cmd.view()); - return DispatchResult(true); + return DispatchResult(true, true); default: return DispatchResult(false); diff --git a/src/insets/insetindex.C b/src/insets/insetindex.C index f8f91ad4c0..248c9fc400 100644 --- a/src/insets/insetindex.C +++ b/src/insets/insetindex.C @@ -68,7 +68,7 @@ InsetIndex::priv_dispatch(FuncRequest const & cmd, switch (cmd.action) { case LFUN_INSET_EDIT: InsetCommandMailer("index", *this).showDialog(cmd.view()); - return DispatchResult(true); + return DispatchResult(true, true); default: return InsetCommand::priv_dispatch(cmd, idx, pos); diff --git a/src/insets/insetlabel.C b/src/insets/insetlabel.C index b5b16cf8ae..b96d27ef4d 100644 --- a/src/insets/insetlabel.C +++ b/src/insets/insetlabel.C @@ -68,7 +68,7 @@ InsetLabel::priv_dispatch(FuncRequest const & cmd, case LFUN_INSET_EDIT: InsetCommandMailer("label", *this).showDialog(bv); - return DispatchResult(true); + return DispatchResult(true, true); break; case LFUN_INSET_MODIFY: { @@ -85,7 +85,7 @@ InsetLabel::priv_dispatch(FuncRequest const & cmd, setParams(p); bv->updateInset(this); - return DispatchResult(true); + return DispatchResult(true, true); } default: diff --git a/src/insets/insetminipage.C b/src/insets/insetminipage.C index 73685cc263..29d82bb473 100644 --- a/src/insets/insetminipage.C +++ b/src/insets/insetminipage.C @@ -112,12 +112,12 @@ InsetMinipage::priv_dispatch(FuncRequest const & cmd, * with ugliness like this ... */ inset.getLyXText(cmd.view())->fullRebreak(); cmd.view()->updateInset(this); - return DispatchResult(true); + return DispatchResult(true, true); } case LFUN_INSET_DIALOG_UPDATE: InsetMinipageMailer(*this).updateDialog(cmd.view()); - return DispatchResult(true); + return DispatchResult(true, true); default: return InsetCollapsable::priv_dispatch(cmd, idx, pos); diff --git a/src/insets/insetnote.C b/src/insets/insetnote.C index b627811694..66c9896b02 100644 --- a/src/insets/insetnote.C +++ b/src/insets/insetnote.C @@ -142,7 +142,7 @@ InsetNote::priv_dispatch(FuncRequest const & cmd, InsetNoteMailer::string2params(cmd.argument, params_); setButtonLabel(); bv->updateInset(this); - return DispatchResult(true); + return DispatchResult(true, true); } case LFUN_INSET_EDIT: @@ -152,12 +152,12 @@ InsetNote::priv_dispatch(FuncRequest const & cmd, case LFUN_INSET_DIALOG_UPDATE: InsetNoteMailer("note", *this).updateDialog(bv); - return DispatchResult(true); + return DispatchResult(true, true); case LFUN_MOUSE_RELEASE: if (cmd.button() == mouse_button::button3 && hitButton(cmd)) { InsetNoteMailer("note", *this).showDialog(bv); - return DispatchResult(true); + return DispatchResult(true, true); } // fallthrough: diff --git a/src/insets/insetref.C b/src/insets/insetref.C index 2e8e385fb3..a6a1538e8d 100644 --- a/src/insets/insetref.C +++ b/src/insets/insetref.C @@ -58,7 +58,7 @@ InsetRef::priv_dispatch(FuncRequest const & cmd, dispatch(FuncRequest(LFUN_REF_GOTO, getContents())); else InsetCommandMailer("ref", *this).showDialog(cmd.view()); - return DispatchResult(true); + return DispatchResult(true, true); default: return InsetCommand::priv_dispatch(cmd, idx, pos); diff --git a/src/insets/insettabular.C b/src/insets/insettabular.C index 65fa7c3bee..88d23a3968 100644 --- a/src/insets/insettabular.C +++ b/src/insets/insettabular.C @@ -677,7 +677,7 @@ InsetTabular::priv_dispatch(FuncRequest const & cmd, if (!bv->lockInset(this)) { lyxerr << "InsetTabular::Cannot lock inset" << endl; - return DispatchResult(true); + return DispatchResult(true, true); } finishUndo(); @@ -713,7 +713,7 @@ InsetTabular::priv_dispatch(FuncRequest const & cmd, activateCellInset(bv, cmd.x - inset_x, cmd.y - inset_y, cmd.button()); } } - return DispatchResult(true); + return DispatchResult(true, true); } if (result.dispatched()) { @@ -726,18 +726,18 @@ InsetTabular::priv_dispatch(FuncRequest const & cmd, bool hs = hasSelection(); - result = DispatchResult(true); + result = DispatchResult(true, true); // this one have priority over the locked InsetText, if we're not already // inside another tabular then that one get's priority! if (getFirstLockingInsetOfType(InsetOld::TABULAR_CODE) == this) { switch (cmd.action) { case LFUN_MOUSE_PRESS: lfunMousePress(cmd); - return DispatchResult(true); + return DispatchResult(true, true); case LFUN_MOUSE_MOTION: lfunMouseMotion(cmd); - return DispatchResult(true); + return DispatchResult(true, true); case LFUN_MOUSE_RELEASE: return DispatchResult(lfunMouseRelease(cmd)); @@ -753,7 +753,7 @@ InsetTabular::priv_dispatch(FuncRequest const & cmd, if (hs) updateLocal(bv); if (!the_locking_inset) - return DispatchResult(true, NOUPDATE); + return DispatchResult(true); return result; // this to avoid compiler warnings. default: @@ -766,15 +766,15 @@ InsetTabular::priv_dispatch(FuncRequest const & cmd, if (the_locking_inset) { result = the_locking_inset->dispatch(cmd); if (result.dispatched()) { - if (result.val() == NOUPDATE) { + if (result.update()) { + updateLocal(bv); + } else { int const sc = scroll(); resetPos(bv); if (sc != scroll()) { // inset has been scrolled updateLocal(bv); } - } else { - updateLocal(bv); } return result; } else if (result.val() == FINISHED_UP) { @@ -793,7 +793,7 @@ InsetTabular::priv_dispatch(FuncRequest const & cmd, } } - result = DispatchResult(true); + result = DispatchResult(true, true); switch (action) { // --- Cursor Movements ---------------------------------- case LFUN_RIGHTSEL: { @@ -1088,7 +1088,7 @@ InsetTabular::priv_dispatch(FuncRequest const & cmd, case LFUN_UNDERLINE: case LFUN_FONT_SIZE: if (bv->dispatch(FuncRequest(bv, action, arg))) - result = DispatchResult(true); + result = DispatchResult(true, true); break; default: break; @@ -1406,17 +1406,17 @@ DispatchResult InsetTabular::moveRight(BufferView * bv, bool lock) { if (lock && !old_locking_inset) { if (activateCellInset(bv)) - return DispatchResult(true); + return DispatchResult(true, true); } else { bool moved = isRightToLeft(bv) ? movePrevCell(bv) : moveNextCell(bv); if (!moved) return DispatchResult(false, FINISHED_RIGHT); if (lock && activateCellInset(bv)) - return DispatchResult(true); + return DispatchResult(true, true); } resetPos(bv); - return DispatchResult(true, NOUPDATE); + return DispatchResult(true); } @@ -1427,9 +1427,9 @@ DispatchResult InsetTabular::moveLeft(BufferView * bv, bool lock) return DispatchResult(false, FINISHED); // behind the inset if (lock && activateCellInset(bv, 0, 0, mouse_button::none, true)) - return DispatchResult(true); + return DispatchResult(true, true); resetPos(bv); - return DispatchResult(true, NOUPDATE); + return DispatchResult(true); } @@ -1448,9 +1448,9 @@ DispatchResult InsetTabular::moveUp(BufferView * bv, bool lock) x -= cursorx_ + tabular.getBeginningOfTextInCell(actcell); } if (activateCellInset(bv, x, 0)) - return DispatchResult(true); + return DispatchResult(true, true); } - return DispatchResult(true, NOUPDATE); + return DispatchResult(true); } @@ -1469,9 +1469,9 @@ DispatchResult InsetTabular::moveDown(BufferView * bv, bool lock) x -= cursorx_ + tabular.getBeginningOfTextInCell(actcell); } if (activateCellInset(bv, x, 0)) - return DispatchResult(true); + return DispatchResult(true, true); } - return DispatchResult(true, NOUPDATE); + return DispatchResult(true); } diff --git a/src/insets/insettext.C b/src/insets/insettext.C index b8d80cf7ae..458b3fbe9b 100644 --- a/src/insets/insettext.C +++ b/src/insets/insettext.C @@ -549,7 +549,7 @@ bool InsetText::lfunMouseRelease(FuncRequest const & cmd) if (the_locking_inset) { DispatchResult const res = the_locking_inset->dispatch(cmd1); - return res.dispatched() || res.val() >= NOUPDATE; + return res.dispatched(); } int tmp_x = cmd.x; @@ -561,7 +561,7 @@ bool InsetText::lfunMouseRelease(FuncRequest const & cmd) // We still need to deal properly with the whole relative vs. // absolute mouse co-ords thing in a realiable, sensible way DispatchResult const res = inset->dispatch(cmd1); - bool const ret = res.dispatched() || res.val() >= NOUPDATE; + bool const ret = res.dispatched(); updateLocal(bv, false); return ret; } @@ -605,7 +605,7 @@ InsetText::priv_dispatch(FuncRequest const & cmd, if (!bv->lockInset(this)) { lyxerr[Debug::INSETS] << "Cannot lock inset" << endl; - return DispatchResult(true); + return DispatchResult(true, true); } locked = true; @@ -653,16 +653,16 @@ InsetText::priv_dispatch(FuncRequest const & cmd, updateLocal(bv, false); // Tell the paragraph dialog that we've entered an insettext. bv->dispatch(FuncRequest(LFUN_PARAGRAPH_UPDATE)); - return DispatchResult(true); + return DispatchResult(true, true); } case LFUN_MOUSE_PRESS: lfunMousePress(cmd); - return DispatchResult(true); + return DispatchResult(true, true); case LFUN_MOUSE_MOTION: lfunMouseMotion(cmd); - return DispatchResult(true); + return DispatchResult(true, true); case LFUN_MOUSE_RELEASE: return DispatchResult(lfunMouseRelease(cmd)); @@ -676,25 +676,27 @@ InsetText::priv_dispatch(FuncRequest const & cmd, DispatchResult result = UpdatableInset::priv_dispatch(cmd, idx, pos); if (result.dispatched()) - return DispatchResult(true); + return DispatchResult(true, true); - result = DispatchResult(true); - if (cmd.action < 0 && cmd.argument.empty()) + result = DispatchResult(true, true); + if (cmd.action == LFUN_UNKNOWN_ACTION && cmd.argument.empty()) return DispatchResult(false, FINISHED); if (the_locking_inset) { result = the_locking_inset->dispatch(cmd); if (result.dispatched()) { - if (result.val() != NOUPDATE) + if (result.update()) { + result.update(false); updateLocal(bv, false); + } return result; } switch (result.val()) { case FINISHED_RIGHT: moveRightIntern(bv, false, false); - result = DispatchResult(true); + result = DispatchResult(true, true); break; case FINISHED_UP: result = moveUp(bv); @@ -711,7 +713,7 @@ InsetText::priv_dispatch(FuncRequest const & cmd, } break; default: - result = DispatchResult(true); + result = DispatchResult(true, true); break; } the_locking_inset = 0; @@ -752,7 +754,7 @@ InsetText::priv_dispatch(FuncRequest const & cmd, } text_.selection.cursor = text_.cursor; updflag = true; - result = DispatchResult(true, NOUPDATE); + result = DispatchResult(true); break; // cursor movements that need special handling @@ -780,7 +782,7 @@ InsetText::priv_dispatch(FuncRequest const & cmd, else { text_.cursorPrevious(); text_.clearSelection(); - result = DispatchResult(true, NOUPDATE); + result = DispatchResult(true); } break; @@ -790,7 +792,7 @@ InsetText::priv_dispatch(FuncRequest const & cmd, else { text_.cursorNext(); text_.clearSelection(); - result = DispatchResult(true, NOUPDATE); + result = DispatchResult(true); } break; @@ -835,7 +837,7 @@ InsetText::priv_dispatch(FuncRequest const & cmd, case LFUN_BREAKPARAGRAPH: if (!autoBreakRows_) { - result = DispatchResult(true); + result = DispatchResult(true, true); } else { replaceSelection(bv->getLyXText()); text_.breakParagraph(paragraphs, 0); @@ -845,7 +847,7 @@ InsetText::priv_dispatch(FuncRequest const & cmd, case LFUN_BREAKPARAGRAPHKEEPLAYOUT: if (!autoBreakRows_) { - result = DispatchResult(true); + result = DispatchResult(true, true); } else { replaceSelection(bv->getLyXText()); text_.breakParagraph(paragraphs, 1); @@ -855,7 +857,7 @@ InsetText::priv_dispatch(FuncRequest const & cmd, case LFUN_BREAKLINE: { if (!autoBreakRows_) { - result = DispatchResult(true); + result = DispatchResult(true, true); } else { replaceSelection(bv->getLyXText()); auto_ptr ins(new InsetNewline); @@ -923,8 +925,8 @@ InsetText::priv_dispatch(FuncRequest const & cmd, if (result.val() >= FINISHED) bv->unlockInset(this); - if (result.val() == NOUPDATE) - result = DispatchResult(true); + if (result.val() == NONE) + result = DispatchResult(true, true); return result; } @@ -1049,11 +1051,11 @@ InsetText::moveRightIntern(BufferView * bv, bool front, if (boost::next(c_par) == paragraphs.end() && cpos() >= c_par->size()) return DispatchResult(false, FINISHED_RIGHT); if (activate_inset && checkAndActivateInset(bv, front)) - return DispatchResult(true); + return DispatchResult(true, true); text_.cursorRight(bv); if (!selecting) text_.clearSelection(); - return DispatchResult(true, NOUPDATE); + return DispatchResult(true); } @@ -1067,8 +1069,8 @@ InsetText::moveLeftIntern(BufferView * bv, bool front, if (!selecting) text_.clearSelection(); if (activate_inset && checkAndActivateInset(bv, front)) - return DispatchResult(true); - return DispatchResult(true, NOUPDATE); + return DispatchResult(true, true); + return DispatchResult(true); } @@ -1078,7 +1080,7 @@ DispatchResult InsetText::moveUp(BufferView * bv) return DispatchResult(false, FINISHED_UP); text_.cursorUp(bv); text_.clearSelection(); - return DispatchResult(true, NOUPDATE); + return DispatchResult(true); } @@ -1088,7 +1090,7 @@ DispatchResult InsetText::moveDown(BufferView * bv) return DispatchResult(false, FINISHED_DOWN); text_.cursorDown(bv); text_.clearSelection(); - return DispatchResult(true, NOUPDATE); + return DispatchResult(true); } diff --git a/src/insets/insettoc.C b/src/insets/insettoc.C index a4f9fb17d1..8854a3a17e 100644 --- a/src/insets/insettoc.C +++ b/src/insets/insettoc.C @@ -82,11 +82,11 @@ InsetTOC::priv_dispatch(FuncRequest const & cmd, case LFUN_MOUSE_RELEASE: if (button().box().contains(cmd.x, cmd.y)) InsetCommandMailer("toc", *this).showDialog(cmd.view()); - return DispatchResult(true); + return DispatchResult(true, true); case LFUN_INSET_DIALOG_SHOW: InsetCommandMailer("toc", *this).showDialog(cmd.view()); - return DispatchResult(true); + return DispatchResult(true, true); default: return InsetCommand::priv_dispatch(cmd, idx, pos); diff --git a/src/insets/inseturl.C b/src/insets/inseturl.C index 1cd18fe3b7..67933a134c 100644 --- a/src/insets/inseturl.C +++ b/src/insets/inseturl.C @@ -51,7 +51,7 @@ InsetUrl::priv_dispatch(FuncRequest const & cmd, switch (cmd.action) { case LFUN_INSET_EDIT: InsetCommandMailer("url", *this).showDialog(cmd.view()); - return DispatchResult(true); + return DispatchResult(true, true); default: return InsetCommand::priv_dispatch(cmd, idx, pos); } diff --git a/src/insets/insetwrap.C b/src/insets/insetwrap.C index 1432b3650c..e6795dbcc2 100644 --- a/src/insets/insetwrap.C +++ b/src/insets/insetwrap.C @@ -98,12 +98,12 @@ InsetWrap::priv_dispatch(FuncRequest const & cmd, params_.width = params.width; cmd.view()->updateInset(this); - return DispatchResult(true); + return DispatchResult(true, true); } case LFUN_INSET_DIALOG_UPDATE: InsetWrapMailer(*this).updateDialog(cmd.view()); - return DispatchResult(true); + return DispatchResult(true, true); default: return InsetCollapsable::priv_dispatch(cmd, idx, pos); diff --git a/src/insets/updatableinset.C b/src/insets/updatableinset.C index 56fc9d72df..6e1e725405 100644 --- a/src/insets/updatableinset.C +++ b/src/insets/updatableinset.C @@ -125,7 +125,7 @@ UpdatableInset::priv_dispatch(FuncRequest const & ev, idx_type &, pos_type &) } ev.view()->updateInset(this); - return DispatchResult(true); + return DispatchResult(true, true); } return DispatchResult(false); } diff --git a/src/lyxfunc.C b/src/lyxfunc.C index e67eb2c8b0..64bcf29385 100644 --- a/src/lyxfunc.C +++ b/src/lyxfunc.C @@ -885,11 +885,17 @@ void LyXFunc::dispatch(FuncRequest const & func, bool verbose) { Cursor cursor; buildCursor(cursor, *view()); - if (cursor.dispatch(FuncRequest(func, view())).dispatched()) { + DispatchResult result = + cursor.dispatch(FuncRequest(func, view())); + + if (result.dispatched()) { + if (result.update()) { + view()->update(); + } lyxerr << "dispatched by Cursor::dispatch()\n"; goto exit_with_message; } - lyxerr << "### NOT DispatchResult(true) BY Cursor::dispatch() ###\n"; + lyxerr << "### NOT DispatchResult(true, true) BY Cursor::dispatch() ###\n"; } #endif @@ -934,6 +940,9 @@ void LyXFunc::dispatch(FuncRequest const & func, bool verbose) // Hand-over to inset's own dispatch: result = inset->dispatch(FuncRequest(view(), action, argument)); if (result.dispatched()) { + if (result.update()) + view()->update(); + goto exit_with_message; } diff --git a/src/mathed/ChangeLog b/src/mathed/ChangeLog index b8020d6613..6f96b85f11 100644 --- a/src/mathed/ChangeLog +++ b/src/mathed/ChangeLog @@ -1,3 +1,7 @@ +2003-11-03 Lars Gullik Bjønnes + + * Adjust for new DispatchResult semantics. + 2003-11-03 Lars Gullik Bjønnes * math_parser.C (parse1): exception safety diff --git a/src/mathed/formulabase.C b/src/mathed/formulabase.C index 6dc422cd8c..8d0a514cc2 100644 --- a/src/mathed/formulabase.C +++ b/src/mathed/formulabase.C @@ -228,7 +228,7 @@ DispatchResult InsetFormulaBase::lfunMouseRelease(FuncRequest const & cmd) lyxerr << "lfunMouseRelease: undispatched: " << cmd.button() << endl; bv->owner()->getDialogs().show("mathpanel"); } - return DispatchResult(true); + return DispatchResult(true, true); } if (cmd.button() == mouse_button::button2) { @@ -238,7 +238,7 @@ DispatchResult InsetFormulaBase::lfunMouseRelease(FuncRequest const & cmd) mathcursor->setPos(cmd.x + xo_, cmd.y + yo_); mathcursor->insert(ar); bv->updateInset(this); - return DispatchResult(true); + return DispatchResult(true, true); } if (cmd.button() == mouse_button::button1) { @@ -250,7 +250,7 @@ DispatchResult InsetFormulaBase::lfunMouseRelease(FuncRequest const & cmd) //mathcursor = new MathCursor(this, x == 0); //metrics(bv); //mathcursor->setPos(x + xo_, y + yo_); - return DispatchResult(true); + return DispatchResult(true, true); } return DispatchResult(false); @@ -272,7 +272,7 @@ DispatchResult InsetFormulaBase::lfunMousePress(FuncRequest const & cmd) if (cmd.button() == mouse_button::button3) { mathcursor->dispatch(cmd); - return DispatchResult(true); + return DispatchResult(true, true); } if (cmd.button() == mouse_button::button1) { @@ -281,28 +281,28 @@ DispatchResult InsetFormulaBase::lfunMousePress(FuncRequest const & cmd) mathcursor->selClear(); mathcursor->setPos(cmd.x + xo_, cmd.y + yo_); mathcursor->dispatch(cmd); - return DispatchResult(true); + return DispatchResult(true, true); } bv->updateInset(this); - return DispatchResult(true); + return DispatchResult(true, true); } DispatchResult InsetFormulaBase::lfunMouseMotion(FuncRequest const & cmd) { if (!mathcursor) - return DispatchResult(true); + return DispatchResult(true, true); if (mathcursor->dispatch(FuncRequest(cmd)).dispatched()) - return DispatchResult(true); + return DispatchResult(true, true); // only select with button 1 if (cmd.button() != mouse_button::button1) - return DispatchResult(true); + return DispatchResult(true, true); if (abs(cmd.x - first_x) < 2 && abs(cmd.y - first_y) < 2) - return DispatchResult(true); + return DispatchResult(true, true); first_x = cmd.x; first_y = cmd.y; @@ -313,7 +313,7 @@ DispatchResult InsetFormulaBase::lfunMouseMotion(FuncRequest const & cmd) BufferView * bv = cmd.view(); mathcursor->setPos(cmd.x + xo_, cmd.y + yo_); bv->updateInset(this); - return DispatchResult(true); + return DispatchResult(true, true); } @@ -349,7 +349,7 @@ InsetFormulaBase::priv_dispatch(FuncRequest const & cmd, // if that is removed, we won't get the magenta box when entering an // inset for the first time bv->updateInset(this); - return DispatchResult(true); + return DispatchResult(true, true); case LFUN_MOUSE_PRESS: //lyxerr << "Mouse single press" << endl; @@ -400,7 +400,7 @@ InsetFormulaBase::priv_dispatch(FuncRequest const & cmd, case LFUN_RIGHTSEL: sel = true; // fall through... case LFUN_RIGHT: - result = mathcursor->right(sel) ? DispatchResult(true) : DispatchResult(false, FINISHED_RIGHT); + result = mathcursor->right(sel) ? DispatchResult(true, true) : DispatchResult(false, FINISHED_RIGHT); //lyxerr << "calling scroll 20" << endl; //scroll(bv, 20); // write something to the minibuffer @@ -410,19 +410,19 @@ InsetFormulaBase::priv_dispatch(FuncRequest const & cmd, case LFUN_LEFTSEL: sel = true; // fall through case LFUN_LEFT: - result = mathcursor->left(sel) ? DispatchResult(true) : DispatchResult(true, FINISHED); + result = mathcursor->left(sel) ? DispatchResult(true, true) : DispatchResult(true, FINISHED); break; case LFUN_UPSEL: sel = true; // fall through case LFUN_UP: - result = mathcursor->up(sel) ? DispatchResult(true) : DispatchResult(false, FINISHED_UP); + result = mathcursor->up(sel) ? DispatchResult(true, true) : DispatchResult(false, FINISHED_UP); break; case LFUN_DOWNSEL: sel = true; // fall through case LFUN_DOWN: - result = mathcursor->down(sel) ? DispatchResult(true) : DispatchResult(false, FINISHED_DOWN); + result = mathcursor->down(sel) ? DispatchResult(true, true) : DispatchResult(false, FINISHED_DOWN); break; case LFUN_WORDSEL: @@ -442,7 +442,7 @@ InsetFormulaBase::priv_dispatch(FuncRequest const & cmd, sel = true; // fall through case LFUN_HOME: case LFUN_WORDLEFT: - result = mathcursor->home(sel) ? DispatchResult(true) : DispatchResult(true, FINISHED); + result = mathcursor->home(sel) ? DispatchResult(true, true) : DispatchResult(true, FINISHED); break; case LFUN_ENDSEL: @@ -450,7 +450,7 @@ InsetFormulaBase::priv_dispatch(FuncRequest const & cmd, sel = true; // fall through case LFUN_END: case LFUN_WORDRIGHT: - result = mathcursor->end(sel) ? DispatchResult(true) : DispatchResult(false, FINISHED_RIGHT); + result = mathcursor->end(sel) ? DispatchResult(true, true) : DispatchResult(false, FINISHED_RIGHT); break; case LFUN_PRIORSEL: @@ -669,7 +669,7 @@ InsetFormulaBase::priv_dispatch(FuncRequest const & cmd, if (!argument.empty()) { recordUndo(bv, Undo::ATOMIC); if (argument.size() == 1) - result = mathcursor->interpret(argument[0]) ? DispatchResult(true) : DispatchResult(false, FINISHED_RIGHT); + result = mathcursor->interpret(argument[0]) ? DispatchResult(true, true) : DispatchResult(false, FINISHED_RIGHT); else mathcursor->insert(argument); } @@ -718,7 +718,7 @@ InsetFormulaBase::priv_dispatch(FuncRequest const & cmd, MathArray ar; if (createMathInset_fromDialogStr(cmd.argument, ar)) { mathcursor->insert(ar); - result = DispatchResult(true); + result = DispatchResult(true, true); } else { result = DispatchResult(false); } @@ -730,7 +730,7 @@ InsetFormulaBase::priv_dispatch(FuncRequest const & cmd, result = DispatchResult(false); } - if (result == DispatchResult(true)) + if (result == DispatchResult(true, true)) bv->updateInset(this); mathcursor->normalize(); @@ -741,7 +741,7 @@ InsetFormulaBase::priv_dispatch(FuncRequest const & cmd, if (mathcursor->selection() || was_selection) toggleInsetSelection(bv); - if (result.val() <= NOUPDATE) { + if (result.dispatched()) { fitInsetCursor(bv); revealCodes(bv); cmd.view()->stuffClipboard(mathcursor->grabSelection()); diff --git a/src/mathed/math_gridinset.C b/src/mathed/math_gridinset.C index a0d8fa6be6..d16f82776c 100644 --- a/src/mathed/math_gridinset.C +++ b/src/mathed/math_gridinset.C @@ -1050,7 +1050,7 @@ DispatchResult MathGridInset::priv_dispatch(FuncRequest const & cmd, case LFUN_MOUSE_RELEASE: //if (cmd.button() == mouse_button::button3) { // GridInsetMailer(*this).showDialog(); - // return DispatchResult(true); + // return DispatchResult(true, true); //} return DispatchResult(false); diff --git a/src/mathed/math_hullinset.C b/src/mathed/math_hullinset.C index df370ecffa..caf7b23936 100644 --- a/src/mathed/math_hullinset.C +++ b/src/mathed/math_hullinset.C @@ -798,7 +798,7 @@ DispatchResult MathHullInset::priv_dispatch numbered(row, !old); //bv->owner()->message(old ? _("No number") : _("Number")); } - return DispatchResult(true); + return DispatchResult(true, true); case LFUN_MATH_NONUMBER: if (display()) { @@ -808,7 +808,7 @@ DispatchResult MathHullInset::priv_dispatch //bv->owner()->message(old ? _("No number") : _("Number")); numbered(r, !old); } - return DispatchResult(true); + return DispatchResult(true, true); case LFUN_INSERT_LABEL: { row_type r = (type_ == "multline") ? nrows() - 1 : row(idx); @@ -832,7 +832,7 @@ DispatchResult MathHullInset::priv_dispatch if (!new_label.empty()) numbered(r, true); label(r, new_label); - return DispatchResult(true); + return DispatchResult(true, true); } case LFUN_MATH_EXTERN: diff --git a/src/mathed/math_nestinset.C b/src/mathed/math_nestinset.C index c561af8e8f..9692a0b7f6 100644 --- a/src/mathed/math_nestinset.C +++ b/src/mathed/math_nestinset.C @@ -299,7 +299,7 @@ MathNestInset::priv_dispatch(FuncRequest const & cmd, mathed_parse_cell(ar, cmd.argument); cell(idx).insert(pos, ar); pos += ar.size(); - return DispatchResult(true); + return DispatchResult(true, true); } case LFUN_PASTESELECTION: diff --git a/src/mathed/math_scriptinset.C b/src/mathed/math_scriptinset.C index e60c2dd635..3c226e2ab3 100644 --- a/src/mathed/math_scriptinset.C +++ b/src/mathed/math_scriptinset.C @@ -528,7 +528,7 @@ MathScriptInset::priv_dispatch(FuncRequest const & cmd, limits_ = (hasLimits()) ? -1 : 1; else limits_ = 0; - return DispatchResult(true); + return DispatchResult(true, true); } return MathNestInset::priv_dispatch(cmd, idx, pos); diff --git a/src/mathed/ref_inset.C b/src/mathed/ref_inset.C index 89319115a7..d157c34b75 100644 --- a/src/mathed/ref_inset.C +++ b/src/mathed/ref_inset.C @@ -66,14 +66,14 @@ RefInset::priv_dispatch(FuncRequest const & cmd, *this = *ar[0].nucleus()->asRefInset(); - return DispatchResult(true); + return DispatchResult(true, true); } break; case LFUN_MOUSE_RELEASE: if (cmd.button() == mouse_button::button3) { lyxerr << "trying to goto ref" << cell(0) << endl; cmd.view()->dispatch(FuncRequest(LFUN_REF_GOTO, asString(cell(0)))); - return DispatchResult(true); + return DispatchResult(true, true); } if (cmd.button() == mouse_button::button1) { // Eventually trigger dialog with button 3 @@ -81,13 +81,13 @@ RefInset::priv_dispatch(FuncRequest const & cmd, string const data = createDialogStr("ref"); cmd.view()->owner()->getDialogs(). show("ref", data, this); - return DispatchResult(true); + return DispatchResult(true, true); } break; case LFUN_MOUSE_PRESS: case LFUN_MOUSE_MOTION: // eat other mouse commands - return DispatchResult(true); + return DispatchResult(true, true); default: return CommandInset::priv_dispatch(cmd, idx, pos); } diff --git a/src/text3.C b/src/text3.C index 3585c9c5ea..e47e7e4067 100644 --- a/src/text3.C +++ b/src/text3.C @@ -1537,5 +1537,5 @@ DispatchResult LyXText::dispatch(FuncRequest const & cmd) return DispatchResult(false); } - return DispatchResult(true); + return DispatchResult(true, true); } -- 2.39.2