This avoid a crash when doing
command-sequence inset-forall Caption char-delete-forward; statistics; undo
in the user guide when a malformed selection is created.
The selection happens here because char-delete-forward will select the
caption instead of deleting it if the "force" parameter is not given.
This is a poor API IMO, it is the plain <del> action that should use a
special parameter.
Thibaut Cuvelier [Sat, 19 Feb 2022 02:11:55 +0000 (03:11 +0100)]
configure: for EPS to PNG, ask ImageMagick to only consider the first image.
Issue discussed in the mailing list: when the EPS contains several images (Adobe Photoshop exports two of them, one being a low-quality TIFF for preview), two files are generated, none with the existing name (prefix: -0 and -1). Hence, LyX thought that there was an error.
Daniel Ramöller [Wed, 16 Feb 2022 13:57:06 +0000 (14:57 +0100)]
Properly show labels from broken references in Cross-references dialog
Fix for bug #12456.
The labels are transmitted from Buffer to GuiRef by reference of refs_
in the getLabelList function. Previously, only one string was
transmitted. But I needed both the formatted string, e.g. "x enu:test"
or "Missing: enu:test", as well as the plain label, e.g. "enu:test".
The former is for the list of labels to choose from in GuiRef and the
latter for the label as shown in the line edit that contains the plain
label in order to create a new reference from it. Transmitting both is
what the pair achieves.
Fix run of index processor in the export chain (#2696)
It does not make sense to issue the index processor before the
pagination is fixed. Particularly, if (classic) BibTeX is run,
we need one or more extra LaTeX runs after that before issuing
the index processor, since the citation labels and references are
only expanded then, which might change pagination. As a consequence,
we ended up in wrong index references.
DocBook: don't force outputting an <abstract> when it would only contain comments.
Before this patch, LyX would forcibly create an <abstract> tag even when there was no abstract in the document; this behaviour is sometimes desirable, but not when the abstract only contains comments (that's not valid DocBook: there must be a paragraph or assimilated within the abstract).
Fix breaking of MANUAL_LABEL paragraph when label is too long
Typical example is a Labeling layout which label is an inline equation
larger than the screen. Before this commit, the row would not get
broken at all.
Two parts in the patch:
1/ when breaking the row in shortenIfNeeded, mark the last element as
AlwaysBreakAfter instead of BreakAfter, in case the next element is
NoBreakBefore.
2/ when nothing could be done, as last resort keep the first element
of the row only.
Kornel Benko [Sun, 23 Jan 2022 19:13:26 +0000 (20:13 +0100)]
Next runtime messages to be ommitted if compiled with clang using flag '-fsanitize'.
Prevent the return of impossible values for 'enum flags'.
For instance the result of '~Update::Force' at src/BufferView.cpp:3025 without this patch
is '4294967293'.
brkstr2str_pos: avoid case where length is negative
The string that Qt sees is not the original string, since we add
zero-width nonbreaking spaces around it, plus an override character to
force rendering direction. This means that translating positions
between these two representation can be a bit tricky.
We use a max(foo, 0) here to make sure that our intermediate
computation is postive.
Kornel Benko [Fri, 21 Jan 2022 10:02:09 +0000 (11:02 +0100)]
Omit runtime messages if compiled with clang using flag '-fsanitize'.
Setting sufficiently high value allows to use
ColorCode enums for new up to 32000 branch insets.
Previous setting printed messages if using more than 25 new branch insets.
"'ColorCode' ... src/Color.cpp:435:10: runtime error:
load of value 128, which is not a valid value for type"
When clearing a row, always clear the whole text area width
It is not a good idea to take into account the horizontal scrolling
that may have happened. For example, this leads to display glitches
when a Description label is larger than text width.
This explains why SingleParUpdate strategy did not work with home/end
on a long row.
The spacing of Labeling, Description and friends shall be computed
when breaking the row, not when tokenizing it. Indeed, this is the
right place to determine its correct value.
To this end add a new MARGINSPACE row element type.
This allows to remove TextMetrics::labelEnd, which is not used anymore.