From: Jean-Marc Lasgouttes Date: Tue, 12 Mar 2019 11:44:08 +0000 (+0100) Subject: Revert "Let tm be a reference here as elsewhere" X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=3b77b396d023a0605c95713ab04aa29bbe5fb6e5;p=features.git Revert "Let tm be a reference here as elsewhere" This commit was wrong because a reference variable can never be re-assigned (it would change the original variable). I learn C++ pitfalls every day. Fixes bug #11512. This reverts commit 10e2c658351c237d3b35566857a533a9d08f7f65. --- diff --git a/src/Text3.cpp b/src/Text3.cpp index b78c8d1bc3..6db9c2b8d5 100644 --- a/src/Text3.cpp +++ b/src/Text3.cpp @@ -639,10 +639,10 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd) } BufferView * bv = &cur.bv(); - TextMetrics & tm = bv->textMetrics(this); - if (!tm.contains(cur.pit())) { + TextMetrics * tm = &bv->textMetrics(this); + if (!tm->contains(cur.pit())) { lyx::dispatch(FuncRequest(LFUN_SCREEN_SHOW_CURSOR)); - tm = bv->textMetrics(this); + tm = &bv->textMetrics(this); } // FIXME: We use the update flag to indicates wether a singlePar or a @@ -735,7 +735,7 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd) if (cur.selection()) cutSelection(cur, false); else - tm.deleteLineForward(cur); + tm->deleteLineForward(cur); finishChange(cur, false); break; @@ -941,13 +941,13 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd) case LFUN_LINE_BEGIN: case LFUN_LINE_BEGIN_SELECT: needsUpdate |= cur.selHandle(cmd.action() == LFUN_LINE_BEGIN_SELECT); - needsUpdate |= tm.cursorHome(cur); + needsUpdate |= tm->cursorHome(cur); break; case LFUN_LINE_END: case LFUN_LINE_END_SELECT: needsUpdate |= cur.selHandle(cmd.action() == LFUN_LINE_END_SELECT); - needsUpdate |= tm.cursorEnd(cur); + needsUpdate |= tm->cursorEnd(cur); break; case LFUN_SECTION_SELECT: { @@ -1530,8 +1530,8 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd) case LFUN_SERVER_GET_XY: cur.message(from_utf8( - convert(tm.cursorX(cur.top(), cur.boundary())) - + ' ' + convert(tm.cursorY(cur.top(), cur.boundary())))); + convert(tm->cursorX(cur.top(), cur.boundary())) + + ' ' + convert(tm->cursorY(cur.top(), cur.boundary())))); break; case LFUN_SERVER_SET_XY: { @@ -1543,7 +1543,7 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd) lyxerr << "SETXY: Could not parse coordinates in '" << to_utf8(cmd.argument()) << endl; else - tm.setCursorFromCoordinates(cur, x, y); + tm->setCursorFromCoordinates(cur, x, y); break; } @@ -1761,9 +1761,9 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd) case LFUN_MOUSE_TRIPLE: if (cmd.button() == mouse_button::button1) { - tm.cursorHome(cur); + tm->cursorHome(cur); cur.resetAnchor(); - tm.cursorEnd(cur); + tm->cursorEnd(cur); cur.setSelection(); bv->cursor() = cur; } @@ -1838,7 +1838,7 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd) int const wh = bv->workHeight(); int const y = max(0, min(wh - 1, cmd.y())); - tm.setCursorFromCoordinates(cur, cmd.x(), y); + tm->setCursorFromCoordinates(cur, cmd.x(), y); cur.setTargetX(cmd.x()); // Don't allow selecting a separator inset if (cur.pos() && cur.paragraph().isEnvSeparator(cur.pos() - 1))