Make sure we jump to the next or previous change when we switch search direction. Without this patch, the same Change will be found and only the cursor is moved from the end (or begin) to the begin (or end) of the selection.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@29115 a592a061-630c-0410-9148-cb99ea01b6c8
http://bugzilla.lyx.org/show_bug.cgi?id=5435
The code for this was already present, but was never reached.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@28910 a592a061-630c-0410-9148-cb99ea01b6c8
[visual cursor] Crash when cutting a figure caption and moving the cursor.
Avoid negative positions.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@28629 a592a061-630c-0410-9148-cb99ea01b6c8
[visual cursor] Crash when moving left in table in an RTL document
Avoid negative positions.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@28626 a592a061-630c-0410-9148-cb99ea01b6c8
The problem was that, if the master is not opened, no respective guiDelegate exists, and the functions that update the toc do not trigger. The fix is to update the child's toc backend and toc items directly in such cases.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@28551 a592a061-630c-0410-9148-cb99ea01b6c8
The setting of boundary need to take the paragraph's direction (LTR/RTL) into
account.
This bug was discovered by Vincent, while trying to solve bug #5061.
While this fixes the original manifestation of bug #5061, it doesn't really
solve the underlying issue, which is that on a boundary, after typing
Ctrl-Enter, the cursor is painted on the same line as the newline symbol
rather than on the new line. See bugzilla for further discussion of this.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@27225 a592a061-630c-0410-9148-cb99ea01b6c8
* Buffer: new updateTocItem() signal (with Delegates and GuiView associates).
* TocBackend: take care of the signal emission instead of the Cursor::checkBufferStructure()
* TocModel: new updateTocItem() method.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@26636 a592a061-630c-0410-9148-cb99ea01b6c8
anchor is incorrectly set to be equal to the cur. This is because comparing two
CursorSlices does not take into account the boundary property (because the
CursorSlice does not know this).
Patch by Vincent.
http://www.mail-archive.com/lyx-devel@lists.lyx.org/msg143572.html
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@26393 a592a061-630c-0410-9148-cb99ea01b6c8
http://bugzilla.lyx.org/show_bug.cgi?id=5173
* Undo.cpp (beginUndoGroup, endUndoGroup): new methods.
(UndoElement): add group_id member
(UndoElementStack): when removing old undo entries, make sure to
remove whole groups.
(Undo::Private): add group_id and group_level (for nesting) members.
(doTextUndoOrRedo): new method. Apply _one_ UndoElement.
(textUndoOrRedo): call doTextUndoOrRedo on each element of the current
group.
(recordUndoFullDocument): put inside an undo group
* Cursor.cpp (beginUndoGroup, endUndoGroup): new methods.
* LyXFunc.cpp (dispatch): add calls to (begin|end)UndoGroup.
* lyxfind.cpp (replaceAll): use several recordUndo instead
of one recordUndoFullDocument.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@26178 a592a061-630c-0410-9148-cb99ea01b6c8
Specifically, moved the functions which actually move left or right from Text
into Cursor, and changed the semantics so that they now return whether or not
the cursor has moved. The functions in Text now use the new functions in Cursor.
This change is being made in preparation of the Word-level visual movement.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@24601 a592a061-630c-0410-9148-cb99ea01b6c8
The need for a LayoutPtr arises from the fact that (a) we do not want to give our clients a Layout &, since we do not want them to be able to change our Layout; but (b) we also need to be able to change which layout is ours. So we cannot store a Layout const &. Or so it seems to the compiler.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23522 a592a061-630c-0410-9148-cb99ea01b6c8
first argument after finalizing the macro. This also works with real
math macros.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23449 a592a061-630c-0410-9148-cb99ea01b6c8
* Inset::validate(): renamed to initView()
* InsetCommand:
- get rid of unneeded refresh() and updateButtonLabel_
- setParams(): call initView()
* InsetRef:
- implement initView()
- screenLabel(): transfer code to updateLabels()
- addToToc(): prefix name with BROKEN if the reference is broken.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23417 a592a061-630c-0410-9148-cb99ea01b6c8
Only when an LTR paragraph *ends with* an RTL chunk of text, movement was
incorrect in two ways:
1. After moving into the pargraph from the end, and then trying to move towards
the beginning of the paragraph, the cursor would immediately jump to the
previous pargraph.
2. If the cursor were placed inside the RTL text, and then we would move left
towards the beginning of the paragraph, upon reaching the end (beginning?) of
the RTL chunk, cursor would jump to the end of the paragraph, and then continue
as in (1).
(Same thing, of course, with the reverse situation, i.e., RTL paragraph ending
with LTR text).
We now deal with both of these cases correctly.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23173 a592a061-630c-0410-9148-cb99ea01b6c8
places, i.e.
- BufferView::setMouseCursor,
- BufferView::mouseEventDispatch
- LyXFunc::dispatch
Before it was called from several dispatch handlers in the middle of the
dispatch process. Because the cursor might get invalidated, this is
not a good idea. We had plenty of crashes and odd behaviours because
of this as nobody really understood those cases.
This fixes (at least) #2069 and #4163.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23140 a592a061-630c-0410-9148-cb99ea01b6c8