A similar patch would be required for LyXHTML, but it will come later. The main impact is that some text isn't output in XHTML (like DocBook before this patch).
The code isn't as clean as it could be. I avoided touching anything not related to DocBook, as the release of 2.4 is nearing, while leaving comments for parts to improve for the next release cycle. Given that the code compiles, there are no risks for TeX or XHTML outputs; for DocBook, less content is skipped, which is a net improvement for users.
To have a distinctive color for selected math which works in both modes
Also, link color_selectionmath with QPalette::HighlightedText, so we
won't need to special-case on lyxrc.use_system_colors any longer
Currently, selected math hull insets use Color_selectiontext when
system colors are in use. This commit implements the same behavior
for partial selection.
This is done by introducing two element types (BEGIN_SEL and END_SEL)
to MathRow.
Explanation from Udi:
There is a missing validation for the requirement of xcolor in
InsetBox::validate, the case we use Boxed with non-default color.
Patch from Udi.
The problem, described by Udi, was the following:
See section 1.10 of babel's manual, on page 12 under
"TROUBLESHOOTING". There cannot be
a closing curly brace after a shorthand, and in babel-spanish
">" is a shorthand.
Thanks to Udi and Jürgen for the patch.
This is a more general fix than the (now reverted) fix at fa67f709.
For ML discussion, see here:
https://www.mail-archive.com/search?l=mid&q=rwwvyyvwmx5wwvwhqdaioil32hblkzi7ghokzgekksrf66ww3f%40u6nj3guoayay
This fix hardcoded a language package and was specific to this
document.
The next commit will introduce a better fix, thanks to Udi and
Jürgen.
This reverts commit fa67f70992da5f7c6cb0958d557993d6c0750534.
When it turns out that breaking a STRING row element was not
sufficient in Row::shortenIfNeeded, we still remember the shortest
width that one can obtain. Later, when we try to split a previous
element of the row, we have a better idea of how much of the row
remains after it.
To this end, change the signature of Element::splitAt to use an enum:
FIT (was: force=false), FORCE (was: force= true) and BEST_EFFORT
(split at max_width, but do not return an error if the string is too
large).
Fixes bug #12660.