From b68574ab864362052fea3fd974d1fc3c1b20935d Mon Sep 17 00:00:00 2001 From: =?utf8?q?Andr=C3=A9=20P=C3=B6nitz?= Date: Mon, 4 Aug 2003 15:41:27 +0000 Subject: [PATCH] waste cycles for simpler InsetText::localUpdate git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@7497 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/insets/insettext.C | 90 ++++++++++++++++-------------------------- src/insets/insettext.h | 8 ---- 2 files changed, 34 insertions(+), 64 deletions(-) diff --git a/src/insets/insettext.C b/src/insets/insettext.C index 2d40601363..6ab780b5be 100644 --- a/src/insets/insettext.C +++ b/src/insets/insettext.C @@ -386,12 +386,6 @@ void InsetText::drawFrame(Painter & pain, int x) const void InsetText::setUpdateStatus(int what) const { need_update |= what; - // this to not draw a selection when we redraw all of it! - if (need_update & CURSOR && !(need_update & SELECTION)) { - if (text_.selection.set()) - need_update = FULL; - text_.clearSelection(); - } } @@ -405,9 +399,7 @@ void InsetText::updateLocal(BufferView * bv, bool mark_dirty) text_.partialRebreak(); setUpdateStatus(FULL); - bool flag = mark_dirty || - (need_update != CURSOR && need_update != NONE) || - text_.selection.set(); + bool flag = mark_dirty || need_update != NONE || text_.selection.set(); if (!text_.selection.set()) text_.selection.cursor = text_.cursor; @@ -416,8 +408,6 @@ void InsetText::updateLocal(BufferView * bv, bool mark_dirty) if (flag) bv->updateInset(const_cast(this)); - if (need_update == CURSOR) - need_update = NONE; bv->owner()->view_state_changed(); bv->owner()->updateMenubar(); bv->owner()->updateToolbar(); @@ -484,10 +474,7 @@ void InsetText::lockInset(BufferView * bv) font.setLanguage(bv->getParentLanguage(this)); setFont(bv, font, false); } - int code = CURSOR; - if (drawFrame_ == LOCKED) - code = CURSOR|DRAW_FRAME; - setUpdateStatus(code); + setUpdateStatus(FULL); } @@ -591,7 +578,6 @@ bool InsetText::updateInsetInInset(BufferView * bv, InsetOld * inset) return true; if (inset->owner() != this) { - int ustat = CURSOR_PAR; bool found = false; UpdatableInset * tl_inset = the_locking_inset; if (tl_inset) @@ -603,16 +589,15 @@ bool InsetText::updateInsetInInset(BufferView * bv, InsetOld * inset) if (!tl_inset->owner()) return false; found = tl_inset->updateInsetInInset(bv, inset); - ustat = FULL; } else { text_.updateInset(tl_inset); - setUpdateStatus(ustat); + setUpdateStatus(FULL); } return found; } bool found = text_.updateInset(inset); if (found) { - setUpdateStatus(CURSOR_PAR); + setUpdateStatus(FULL); if (the_locking_inset && cpar() == inset_par && cpos() == inset_pos) { @@ -832,10 +817,6 @@ InsetOld::RESULT InsetText::localDispatch(FuncRequest const & cmd) setFont(bv, font, false); } - int code = CURSOR; - if (drawFrame_ == LOCKED) - code = CURSOR | DRAW_FRAME; - updateLocal(bv, false); // Tell the paragraph dialog that we've entered an insettext. bv->dispatch(FuncRequest(LFUN_PARAGRAPH_UPDATE)); @@ -873,23 +854,26 @@ InsetOld::RESULT InsetText::localDispatch(FuncRequest const & cmd) result = the_locking_inset->localDispatch(cmd); if (result == DISPATCHED_NOUPDATE) return result; - else if (result == DISPATCHED) { + if (result == DISPATCHED) { updateLocal(bv, false); return result; - } else if (result >= FINISHED) { + } + if (result >= FINISHED) { switch (result) { case FINISHED_RIGHT: moveRightIntern(bv, false, false); result = DISPATCHED; break; case FINISHED_UP: - if ((result = moveUp(bv)) >= FINISHED) { + result = moveUp(bv); + if (result >= FINISHED) { updateLocal(bv, false); bv->unlockInset(this); } break; case FINISHED_DOWN: - if ((result = moveDown(bv)) >= FINISHED) { + result = moveDown(bv); + if (result >= FINISHED) { updateLocal(bv, false); bv->unlockInset(this); } @@ -905,14 +889,8 @@ InsetOld::RESULT InsetText::localDispatch(FuncRequest const & cmd) return result; } } - int updwhat = 0; - int updflag = false; - - // what type of update to do on a cursor movement - int cursor_update = CURSOR; - - if (text_.selection.set()) - cursor_update = SELECTION; + bool updwhat = false; + bool updflag = false; switch (cmd.action) { @@ -945,7 +923,7 @@ InsetOld::RESULT InsetText::localDispatch(FuncRequest const & cmd) } } text_.selection.cursor = text_.cursor; - updwhat = CURSOR | CURSOR_PAR; + updwhat = true; updflag = true; result = DISPATCHED_NOUPDATE; break; @@ -955,22 +933,22 @@ InsetOld::RESULT InsetText::localDispatch(FuncRequest const & cmd) case LFUN_RIGHT: result = moveRight(bv); finishUndo(); - updwhat = cursor_update; + updwhat = true; break; case LFUN_LEFT: finishUndo(); result = moveLeft(bv); - updwhat = cursor_update; + updwhat = true; break; case LFUN_DOWN: finishUndo(); result = moveDown(bv); - updwhat = cursor_update; + updwhat = true; break; case LFUN_UP: finishUndo(); result = moveUp(bv); - updwhat = cursor_update; + updwhat = true; break; case LFUN_PRIOR: @@ -981,7 +959,7 @@ InsetOld::RESULT InsetText::localDispatch(FuncRequest const & cmd) text_.clearSelection(); result = DISPATCHED_NOUPDATE; } - updwhat = cursor_update; + updwhat = true; break; case LFUN_NEXT: @@ -992,7 +970,7 @@ InsetOld::RESULT InsetText::localDispatch(FuncRequest const & cmd) text_.clearSelection(); result = DISPATCHED_NOUPDATE; } - updwhat = cursor_update; + updwhat = true; break; case LFUN_BACKSPACE: { @@ -1000,7 +978,7 @@ InsetOld::RESULT InsetText::localDispatch(FuncRequest const & cmd) text_.cutSelection(true, false); else text_.backspace(); - updwhat = CURSOR_PAR; + updwhat = true; updflag = true; break; } @@ -1011,14 +989,14 @@ InsetOld::RESULT InsetText::localDispatch(FuncRequest const & cmd) } else { text_.Delete(); } - updwhat = CURSOR_PAR; + updwhat = true; updflag = true; break; } case LFUN_CUT: { text_.cutSelection(true, true); - updwhat = CURSOR_PAR; + updwhat = true; updflag = true; break; } @@ -1026,7 +1004,7 @@ InsetOld::RESULT InsetText::localDispatch(FuncRequest const & cmd) case LFUN_COPY: finishUndo(); text_.copySelection(); - updwhat = CURSOR_PAR; + updwhat = true; break; case LFUN_PASTESELECTION: @@ -1043,7 +1021,7 @@ InsetOld::RESULT InsetText::localDispatch(FuncRequest const & cmd) // bug 393 text_.clearSelection(); - updwhat = CURSOR_PAR; + updwhat = true; updflag = true; break; } @@ -1070,7 +1048,7 @@ InsetOld::RESULT InsetText::localDispatch(FuncRequest const & cmd) text_.pasteSelection(sel_index); // bug 393 text_.clearSelection(); - updwhat = CURSOR_PAR; + updwhat = true; updflag = true; break; } @@ -1082,7 +1060,7 @@ InsetOld::RESULT InsetText::localDispatch(FuncRequest const & cmd) } replaceSelection(bv->getLyXText()); text_.breakParagraph(paragraphs, 0); - updwhat = CURSOR | FULL; + updwhat = true; updflag = true; break; @@ -1093,7 +1071,7 @@ InsetOld::RESULT InsetText::localDispatch(FuncRequest const & cmd) } replaceSelection(bv->getLyXText()); text_.breakParagraph(paragraphs, 1); - updwhat = CURSOR | FULL; + updwhat = true; updflag = true; break; @@ -1105,7 +1083,7 @@ InsetOld::RESULT InsetText::localDispatch(FuncRequest const & cmd) replaceSelection(bv->getLyXText()); text_.insertInset(new InsetNewline); - updwhat = CURSOR | CURSOR_PAR; + updwhat = true; updflag = true; break; } @@ -1141,7 +1119,7 @@ InsetOld::RESULT InsetText::localDispatch(FuncRequest const & cmd) cur_layout = layout; text_.setLayout(layout); bv->owner()->setLayout(cpar()->layout()->name()); - updwhat = CURSOR_PAR; + updwhat = true; updflag = true; } } else { @@ -1191,7 +1169,7 @@ InsetOld::RESULT InsetText::localDispatch(FuncRequest const & cmd) } if (cur_spacing != new_spacing || cur_value != new_value) { pit->params().spacing(Spacing(new_spacing, new_value)); - updwhat = CURSOR_PAR; + updwhat = true; updflag = true; } } @@ -1208,7 +1186,7 @@ InsetOld::RESULT InsetText::localDispatch(FuncRequest const & cmd) // these two are really unhandled ... case LFUN_ENDBUF: case LFUN_BEGINNINGBUF: - updwhat = cursor_update; + updwhat = true; if (!bv->dispatch(cmd)) result = UNDISPATCHED; break; @@ -1221,7 +1199,7 @@ InsetOld::RESULT InsetText::localDispatch(FuncRequest const & cmd) case LFUN_ENDSEL: case LFUN_WORDLEFTSEL: case LFUN_WORDRIGHTSEL: - updwhat = SELECTION; + updwhat = true; // fallthrough @@ -1231,7 +1209,7 @@ InsetOld::RESULT InsetText::localDispatch(FuncRequest const & cmd) break; } - if (updwhat > 0) + if (updwhat) updateLocal(bv, updflag); /// If the action has deleted all text in the inset, we need to change the // language to the language of the surronding text. diff --git a/src/insets/insettext.h b/src/insets/insettext.h index 57ae7d8abc..73c4e17e8e 100644 --- a/src/insets/insettext.h +++ b/src/insets/insettext.h @@ -50,14 +50,6 @@ public: /// NONE = 0, /// - CURSOR = 1, - /// - DRAW_FRAME = 2, - /// - SELECTION = 4, - /// - CURSOR_PAR = 8, - /// FULL = 16, /// INIT = 32 -- 2.39.2