Nothing fancy. Andre'
-- Those who desire to give up Freedom in order to gain Security, will not have, nor do they deserve, either one. (T. Jefferson or B. Franklin or both...)
? 1.diff ? 2.diff ? 3.diff ? fullredraw.diff ? par-row.diff ? qfont_loader.tar.bz2 ? search.diff ? tabular-il.diff ? textcache.diff ? tmp.diff ? vspace.diff ? frontends/xforms/1.diff ? insets/1.diff ? mathed/.formulabase.C.swp ? mathed/1.diff ? mathed/cursor.diff ? support/1.diff Index: BufferView.C =================================================================== RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/BufferView.C,v retrieving revision 1.217 diff -u -p -r1.217 BufferView.C --- BufferView.C 14 Jan 2004 14:16:07 -0000 1.217 +++ BufferView.C 14 Jan 2004 14:54:36 -0000 @@ -518,3 +518,36 @@ void BufferView::resetAnchor() { return fullCursor().resetAnchor(); } + + +CursorSlice const & BufferView::selStart() const +{ + if (!selection().set()) + return cursor(); + // can't use std::min as this creates a new object + return anchor() < cursor() ? anchor() : cursor(); +} + + +CursorSlice const & BufferView::selEnd() const +{ + if (!selection().set()) + return cursor(); + return anchor() > cursor() ? anchor() : cursor(); +} + + +CursorSlice & BufferView::selStart() +{ + if (!selection().set()) + return cursor(); + return anchor() < cursor() ? anchor() : cursor(); +} + + +CursorSlice & BufferView::selEnd() +{ + if (selection().set()) + return cursor(); + return anchor() > cursor() ? anchor() : cursor(); +} Index: BufferView.h =================================================================== RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/BufferView.h,v retrieving revision 1.157 diff -u -p -r1.157 BufferView.h --- BufferView.h 14 Jan 2004 14:16:08 -0000 1.157 +++ BufferView.h 14 Jan 2004 14:54:36 -0000 @@ -233,6 +233,14 @@ public: Selection & selection(); /// Selection const & selection() const; + /// + CursorSlice & selStart(); + /// + CursorSlice const & selStart() const; + /// + CursorSlice & selEnd(); + /// + CursorSlice const & selEnd() const; /// Selection selection_; Index: BufferView_pimpl.C =================================================================== RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/BufferView_pimpl.C,v retrieving revision 1.486 diff -u -p -r1.486 BufferView_pimpl.C --- BufferView_pimpl.C 14 Jan 2004 14:16:08 -0000 1.486 +++ BufferView_pimpl.C 14 Jan 2004 14:54:36 -0000 @@ -395,10 +395,10 @@ void BufferView::Pimpl::resizeCurrentBuf par = bv_->cursor().par(); pos = bv_->cursor().pos(); - selstartpar = text->selStart().par(); - selstartpos = text->selStart().pos(); - selendpar = text->selEnd().par(); - selendpos = text->selEnd().pos(); + selstartpar = bv_->selStart().par(); + selstartpos = bv_->selStart().pos(); + selendpar = bv_->selEnd().par(); + selendpos = bv_->selEnd().pos(); sel = bv_->selection().set(); mark_set = bv_->selection().mark(); text->textwidth_ = bv_->workWidth(); @@ -637,8 +637,8 @@ Change const BufferView::Pimpl::getCurre if (!bv_->selection().set()) return Change(Change::UNCHANGED); - return text->getPar(text->selStart()) - ->lookupChangeFull(text->selStart().pos()); + return text->getPar(bv_->selStart()) + ->lookupChangeFull(bv_->selStart().pos()); } Index: lyxfind.C =================================================================== RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/lyxfind.C,v retrieving revision 1.64 diff -u -p -r1.64 lyxfind.C --- lyxfind.C 13 Jan 2004 10:37:34 -0000 1.64 +++ lyxfind.C 14 Jan 2004 14:54:36 -0000 @@ -394,8 +394,7 @@ int replace(BufferView * bv, text->replaceSelectionWithString(replacestr); text->setSelectionRange(replacestr.length()); - text->cursor() = fw ? text->selEnd() : text->selStart(); - + bv->cursor() = fw ? bv->selEnd() : bv->selStart(); bv->buffer()->markDirty(); find(bv, searchstr, cs, mw, fw); bv->update(); Index: lyxtext.h =================================================================== RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/lyxtext.h,v retrieving revision 1.278 diff -u -p -r1.278 lyxtext.h --- lyxtext.h 14 Jan 2004 14:16:08 -0000 1.278 +++ lyxtext.h 14 Jan 2004 14:54:36 -0000 @@ -409,15 +409,6 @@ public: void setSelection(); /// void clearSelection(); - /// - CursorSlice & selStart(); - /// - CursorSlice const & selStart() const; - /// - CursorSlice & selEnd(); - /// - CursorSlice const & selEnd() const; - public: /// Index: rowpainter.C =================================================================== RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/rowpainter.C,v retrieving revision 1.107 diff -u -p -r1.107 rowpainter.C --- rowpainter.C 14 Jan 2004 14:16:09 -0000 1.107 +++ rowpainter.C 14 Jan 2004 14:54:36 -0000 @@ -391,14 +391,14 @@ void RowPainter::paintSelection() bool const is_rtl = pit_->isRightToLeftPar(bv_.buffer()->params()); // the current selection - int const startx = text_.cursorX(text_.selStart()); - int const endx = text_.cursorX(text_.selEnd()); - int const starty = text_.cursorY(text_.selStart()); - int const endy = text_.cursorY(text_.selEnd()); - ParagraphList::iterator startpit = text_.getPar(text_.selStart()); - ParagraphList::iterator endpit = text_.getPar(text_.selEnd()); - RowList::iterator startrow = startpit->getRow(text_.selStart().pos()); - RowList::iterator endrow = endpit->getRow(text_.selEnd().pos()); + int const startx = text_.cursorX(bv_.selStart()); + int const endx = text_.cursorX(bv_.selEnd()); + int const starty = text_.cursorY(bv_.selStart()); + int const endy = text_.cursorY(bv_.selEnd()); + ParagraphList::iterator startpit = text_.getPar(bv_.selStart()); + ParagraphList::iterator endpit = text_.getPar(bv_.selEnd()); + RowList::iterator startrow = startpit->getRow(bv_.selStart().pos()); + RowList::iterator endrow = endpit->getRow(bv_.selEnd().pos()); int const h = row_.height(); int const row_y = pit_->y + row_.y_offset(); @@ -468,9 +468,9 @@ void RowPainter::paintSelection() } if (((startpit != pit_ && startrow != rit_) - || text_.selStart().pos() <= pos) && + || bv_.selStart().pos() <= pos) && ((endpit != pit_ && endrow != rit_) - || pos < text_.selEnd().pos())) { + || pos < bv_.selEnd().pos())) { // Here we do not use x_ as xo_ was added to x_. pain_.fillRectangle(int(old_tmpx), yo_, int(tmpx - old_tmpx + 1), h, LColor::selection); Index: text.C =================================================================== RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/text.C,v retrieving revision 1.521 diff -u -p -r1.521 text.C --- text.C 14 Jan 2004 14:16:09 -0000 1.521 +++ text.C 14 Jan 2004 14:54:36 -0000 @@ -1127,9 +1127,9 @@ void LyXText::acceptChange() if (!bv()->selection().set() && cursorPar()->size()) return; - if (selStart().par() == selEnd().par()) { - CursorSlice const & startc = selStart(); - CursorSlice const & endc = selEnd(); + if (bv()->selStart().par() == bv()->selEnd().par()) { + CursorSlice const & startc = bv()->selStart(); + CursorSlice const & endc = bv()->selEnd(); recordUndo(Undo::INSERT, this, startc.par()); getPar(startc)->acceptChange(startc.pos(), endc.pos()); finishUndo(); @@ -1146,9 +1146,9 @@ void LyXText::rejectChange() if (!bv()->selection().set() && cursorPar()->size()) return; - if (selStart().par() == selEnd().par()) { - CursorSlice const & startc = selStart(); - CursorSlice const & endc = selEnd(); + if (bv()->selStart().par() == bv()->selEnd().par()) { + CursorSlice const & startc = bv()->selStart(); + CursorSlice const & endc = bv()->selEnd(); recordUndo(Undo::INSERT, this, startc.par()); getPar(startc)->rejectChange(startc.pos(), endc.pos()); finishUndo(); @@ -1225,8 +1225,8 @@ void LyXText::changeCase(LyXText::TextCa CursorSlice to; if (bv()->selection().set()) { - from = selStart(); - to = selEnd(); + from = bv()->selStart(); + to = bv()->selEnd(); } else { from = cursor(); getWord(from, to, lyx::PARTIAL_WORD); @@ -1511,10 +1511,10 @@ string LyXText::selectionAsString(Buffer return string(); // should be const ... - ParagraphList::iterator startpit = getPar(selStart()); - ParagraphList::iterator endpit = getPar(selEnd()); - size_t const startpos = selStart().pos(); - size_t const endpos = selEnd().pos(); + ParagraphList::iterator startpit = getPar(bv()->selStart()); + ParagraphList::iterator endpit = getPar(bv()->selEnd()); + size_t const startpos = bv()->selStart().pos(); + size_t const endpos = bv()->selEnd().pos(); if (startpit == endpit) return startpit->asString(buffer, startpos, endpos, label); @@ -1956,39 +1956,6 @@ CursorSlice & LyXText::anchor() CursorSlice const & LyXText::anchor() const { return bv()->anchor(); -} - - -CursorSlice const & LyXText::selStart() const -{ - if (!bv()->selection().set()) - return cursor(); - // can't use std::min as this creates a new object - return anchor() < cursor() ? anchor() : cursor(); -} - - -CursorSlice const & LyXText::selEnd() const -{ - if (!bv()->selection().set()) - return cursor(); - return anchor() > cursor() ? anchor() : cursor(); -} - - -CursorSlice & LyXText::selStart() -{ - if (!bv()->selection().set()) - return cursor(); - return anchor() < cursor() ? anchor() : cursor(); -} - - -CursorSlice & LyXText::selEnd() -{ - if (!bv()->selection().set()) - return cursor(); - return anchor() > cursor() ? anchor() : cursor(); } Index: text2.C =================================================================== RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/text2.C,v retrieving revision 1.530 diff -u -p -r1.530 text2.C --- text2.C 14 Jan 2004 14:16:09 -0000 1.530 +++ text2.C 14 Jan 2004 14:54:37 -0000 @@ -333,8 +333,8 @@ void LyXText::setLayout(string const & l return; } - ParagraphList::iterator start = getPar(selStart().par()); - ParagraphList::iterator end = boost::next(getPar(selEnd().par())); + ParagraphList::iterator start = getPar(bv()->selStart().par()); + ParagraphList::iterator end = boost::next(getPar(bv()->selEnd().par())); ParagraphList::iterator endpit = setLayout(start, end, layout); redoParagraphs(start, endpit); @@ -353,8 +353,8 @@ void getSelectionSpan(LyXText & text, beg = text.cursorPar(); end = boost::next(beg); } else { - beg = text.getPar(text.selStart()); - end = boost::next(text.getPar(text.selEnd())); + beg = text.getPar(text.bv()->selStart()); + end = boost::next(text.getPar(text.bv()->selEnd())); } } @@ -448,14 +448,14 @@ void LyXText::setFont(LyXFont const & fo } // ok we have a selection. - recUndo(selStart().par(), selEnd().par()); + recUndo(bv()->selStart().par(), bv()->selEnd().par()); freezeUndo(); - ParagraphList::iterator beg = getPar(selStart().par()); - ParagraphList::iterator end = getPar(selEnd().par()); + ParagraphList::iterator beg = getPar(bv()->selStart().par()); + ParagraphList::iterator end = getPar(bv()->selEnd().par()); - PosIterator pos(¶graphs(), beg, selStart().pos()); - PosIterator posend(¶graphs(), end, selEnd().pos()); + PosIterator pos(¶graphs(), beg, bv()->selStart().pos()); + PosIterator posend(¶graphs(), end, bv()->selEnd().pos()); BufferParams const & params = bv()->buffer()->params(); @@ -549,7 +549,7 @@ string LyXText::getStringToIndex() string idxstring; if (!bv()->selection().set()) bv()->owner()->message(_("Nothing to index!")); - else if (selStart().par() != selEnd().par()) + else if (bv()->selStart().par() != bv()->selEnd().par()) bv()->owner()->message(_("Cannot index more than one paragraph!")); else idxstring = selectionAsString(*bv()->buffer(), false); @@ -576,11 +576,11 @@ void LyXText::setParagraph(Spacing const string const & labelwidthstring, bool noindent) { // make sure that the depth behind the selection are restored, too - ParagraphList::iterator undopit = undoSpan(getPar(selEnd())); - recUndo(selStart().par(), parOffset(undopit) - 1); + ParagraphList::iterator undopit = undoSpan(getPar(bv()->selEnd())); + recUndo(bv()->selStart().par(), parOffset(undopit) - 1); - ParagraphList::reverse_iterator pit(getPar(selEnd().par())); - ParagraphList::reverse_iterator beg(getPar(selStart().par())); + ParagraphList::reverse_iterator pit(getPar(bv()->selEnd().par())); + ParagraphList::reverse_iterator beg(getPar(bv()->selStart().par())); for (--pit; pit != beg; ++pit) { ParagraphParameters & params = pit->params(); @@ -601,7 +601,7 @@ void LyXText::setParagraph(Spacing const params.noindent(noindent); } - redoParagraphs(getPar(selStart()), undopit); + redoParagraphs(getPar(bv()->selStart()), undopit); } @@ -932,29 +932,29 @@ void LyXText::cutSelection(bool doclear, if (!bv()->selection().set()) return; - // OK, we have a selection. This is always between selStart() - // and selEnd() + // OK, we have a selection. This is always between bv()->selStart() + // and bv()->selEnd() // make sure that the depth behind the selection are restored, too - ParagraphList::iterator begpit = getPar(selStart().par()); - ParagraphList::iterator endpit = getPar(selEnd().par()); + ParagraphList::iterator begpit = getPar(bv()->selStart().par()); + ParagraphList::iterator endpit = getPar(bv()->selEnd().par()); ParagraphList::iterator undopit = undoSpan(endpit); - recUndo(selStart().par(), parOffset(undopit) - 1); + recUndo(bv()->selStart().par(), parOffset(undopit) - 1); - int endpos = selEnd().pos(); + int endpos = bv()->selEnd().pos(); BufferParams const & bufparams = bv()->buffer()->params(); boost::tie(endpit, endpos) = realcut ? CutAndPaste::cutSelection(bufparams, paragraphs(), begpit , endpit, - selStart().pos(), endpos, + bv()->selStart().pos(), endpos, bufparams.textclass, doclear) : CutAndPaste::eraseSelection(bufparams, paragraphs(), begpit, endpit, - selStart().pos(), endpos, + bv()->selStart().pos(), endpos, doclear); // sometimes necessary if (doclear) @@ -982,20 +982,20 @@ void LyXText::copySelection() if (!bv()->selection().set()) return; - // ok we have a selection. This is always between selStart() + // ok we have a selection. This is always between bv()->selStart() // and sel_end cursor // copy behind a space if there is one - while (getPar(selStart())->size() > selStart().pos() - && getPar(selStart())->isLineSeparator(selStart().pos()) - && (selStart().par() != selEnd().par() - || selStart().pos() < selEnd().pos())) - selStart().pos(selStart().pos() + 1); - - CutAndPaste::copySelection(getPar(selStart().par()), - getPar(selEnd().par()), - selStart().pos(), - selEnd().pos(), + while (getPar(bv()->selStart())->size() > bv()->selStart().pos() + && getPar(bv()->selStart())->isLineSeparator(bv()->selStart().pos()) + && (bv()->selStart().par() != bv()->selEnd().par() + || bv()->selStart().pos() < bv()->selEnd().pos())) + bv()->selStart().pos(bv()->selStart().pos() + 1); + + CutAndPaste::copySelection(getPar(bv()->selStart().par()), + getPar(bv()->selEnd().par()), + bv()->selStart().pos(), + bv()->selEnd().pos(), bv()->buffer()->params().textclass); } @@ -1052,16 +1052,16 @@ void LyXText::replaceSelectionWithString freezeUndo(); // Get font setting before we cut - pos_type pos = selEnd().pos(); - LyXFont const font = getPar(selStart()) + pos_type pos = bv()->selEnd().pos(); + LyXFont const font = getPar(bv()->selStart()) ->getFontSettings(bv()->buffer()->params(), - selStart().pos()); + bv()->selStart().pos()); // Insert the new string string::const_iterator cit = str.begin(); string::const_iterator end = str.end(); for (; cit != end; ++cit) { - getPar(selEnd())->insertChar(pos, (*cit), font); + getPar(bv()->selEnd())->insertChar(pos, (*cit), font); ++pos; } Index: text3.C =================================================================== RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/text3.C,v retrieving revision 1.204 diff -u -p -r1.204 text3.C --- text3.C 14 Jan 2004 14:16:10 -0000 1.204 +++ text3.C 14 Jan 2004 14:54:37 -0000 @@ -1073,10 +1073,10 @@ DispatchResult LyXText::dispatch(FuncReq bool change_layout = (current_layout != layout); if (!change_layout && bv->selection().set() && - selStart().par() != selEnd().par()) + bv->selStart().par() != bv->selEnd().par()) { - ParagraphList::iterator spit = getPar(selStart()); - ParagraphList::iterator epit = boost::next(getPar(selEnd())); + ParagraphList::iterator spit = getPar(bv->selStart()); + ParagraphList::iterator epit = boost::next(getPar(bv->selEnd())); while (spit != epit) { if (spit->layout()->name() != current_layout) { change_layout = true;