We are not capable of handling two bibitems within one biblio paragraph.
That's why we have functions like Paragraph::brokenBiblio() and
Paragraph::fixBiblio(). So, if we fix the biblio by deleting the second
bibitem, we should not keep it as deleted.
This code caused a crash because the inset was released, but still kept as
deleted.
Fixes-bug: #8646.
TextMetrics::getColumnNearX (x -> pos translation) has special code to
ignore spaces at the beginning of a row, but neither the display code
nor TextMetrics::cursorX (pos->x translation) follow this logic. One
might argue that spaces should actually be ignored (like LaTeX does),
but this leads to UI issues and is probably too difficult to
implement.
(cherry picked from commit bab58480bc)
http://marc.info/?l=lyx-devel&m=138590578911716&w=2
If you look at Buffer.cpp, around line 4351, there was a comment about bug 5699. We are seeing the
same crash. The problem is that, although the master does have a GUI, that GUI is in a different window. So the structureChanged() call we do during updateBuffer() is for the TOC in that window, not the TOC in the window we are actually in. So our TocModel::toc_ has been reset and is invalid, though the widget itself has not been updated and looks fine.
This patch tests whether the master is in the same window as the buffer we are updating.
A problem remains, which is noted in a comment.
(cherry picked from commit 3f62601a8f)
Conflicts:
src/Buffer.cpp
This is the result of the discussion on the list "2.1.0 Blocker". Thanks to
all contributors!
The main idea is to use thread-local storage for all static variables.
This solution does not need any mutex. For more details, see the comment in
unicode.h.
The bug was introduced with commit [2af09e2e/lyxgit], where the unnecessary trailing bracket in CJK environments was suppresed, but not the preceding bracket (which is only output if CJK is a secondary language).
Move the handling of branch-(de)activate(master) to Buffer. This code was moved to Bufferview in [3a03e71c/lyxgit] because a cursor was necessary to call Undo::recordUndoFullDocument(). However, it turns out that the undo code is already prepared to handle an empty cursor (and do nothing in this case).
Therefore we do that and move the branch code to Buffer where it belongs.
Note that there was a bug in the previous code that broke undo support: recordUndo should always be called _before_ doing any change.
Using Cursor::setCursor or even BufferView::setCursor is often a bad
idea since it does not run DEPM. In this case (and other cases in
f&replace code) it is better to use BufferView::mouseSetCursor (which
should maybe be renamed...).
src/TextClass.h
src/insets/InsetTabular.h
Overloaded virtual method missing the 'const' qualifier
src/insets/InsetCommandParams.h
Missing constructor (breaks compilation with llvm/clang)
src/frontends/qt4/GuiWorkArea.cpp
Missing parenthesis: `+' has priority over `?:' (I do not know
whether this has a visible effect).
src/mathed/InsetMathFont.cpp
Use of == instead of = in mathmlize()
Uwe says that this fixes#8425.
This has been in trunk for two weeks without problems. Hopefully,
that means it is safe.
(cherry picked from commit e2155d3d58)
Conflicts:
src/Buffer.cpp