http://bugzilla.lyx.org/show_bug.cgi?id=3408http://bugzilla.lyx.org/show_bug.cgi?id=3409
The missing redraw was introduced with "Draw only decoration" optimisation in mathed. Setting the flags to Update::Force in case of Preview mode fixes the problem.
* InsetMathHull::notifyCursorLeaves(): set the cursor flags to 'Force'
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17718 a592a061-630c-0410-9148-cb99ea01b6c8
isdigit from ctype.h, because the latter are locale dependant and do not
work with char_type.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17698 a592a061-630c-0410-9148-cb99ea01b6c8
* src/mathed/InsetMathScript.C
(InsetMathScript::dy01): Make sure that the subscript is placed
not higher than when it appears alone.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17602 a592a061-630c-0410-9148-cb99ea01b6c8
The string representation of math data stored in an undo could not be
read back. Now we store the math directly and do not convert to and from
a string.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17591 a592a061-630c-0410-9148-cb99ea01b6c8
* src/mathed/MathData.C
(MathArray::metrics): Explicitly initialize kerning_ as it may
contain random data when the nucleus is an empty MathFont inset.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17560 a592a061-630c-0410-9148-cb99ea01b6c8
* src/mathed/InsetMathScript.C
(isAlphaSymbol): New. Return true if nucleus is a letter or a
symbol whose type is mathord or mathalpha.
(InsetMathScript::dy01): Apply rule 18a accounting for nucleus type.
* src/mathed/MathData.C
(MathArray::metrics): Account for the fact that some fonts (eg.
mathcal) do not have a lower case x glyph.
* src/mathed/InsetMathSymbol.[Ch]
(InsetMathSymbol::isOrdAlpha): New. Return true if type of symbol
is mathord or mathalpha.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17518 a592a061-630c-0410-9148-cb99ea01b6c8
* src/mathed/MathSupport.[Ch]
(mathed_char_kerning): New. Compute right kerning for the given
font and character as the difference between right bearing and
logical width.
* src/mathed/InsetMathScript.[Ch]
(InsetMathScript::dx1, InsetMathScript::metrics): Account for
nucleus right kerning.
(InsetMathScript::nker): New. Return the nucleus right kerning
if positive, zero otherwise.
* src/mathed/MathData.[Ch]
(MathArray::metrics): Cache the nucleus right kerning value.
(MathArray::kerning): New. Return cached right kerning.
* src/mathed/InsetMathChar.[Ch]
(InsetMathChar::metrics): Cache the character right kerning.
(InsetMathChar::kerning): New. Return cached right kerning.
* src/mathed/InsetMath.h
(InsetMath::kerning): New virtual method.
* src/mathed/InsetMathSymbol.[Ch]
(InsetMathSymbol::metrics): Cache the symbol right kerning.
(InsetMathSymbol::kerning): New. Return cached right kerning.
* src/mathed/InsetMathFont.[Ch]
(InsetMathFont::kerning): New. Return cached right kerning.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17497 a592a061-630c-0410-9148-cb99ea01b6c8
* src/mathed/InsetMathGrid.[Ch]
(InsetMathGrid::allow_pagebreak_): New member
* src/mathed/InsetMathGrid.C
(InsetMathGrid::eolString): Output \\* if allow_pagebreak_ is false
* src/mathed/MathParser.C
(addRow): Set allow_pagebreak_ in rowinfo if needed
(Parser::parse1): Parse '\\*' correctly
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17484 a592a061-630c-0410-9148-cb99ea01b6c8
* src/mathed/InsetMathScript.[Ch]
(InsetMathScript::dy01): new, jointly account for both superscript
and subscript according to the rules in Appendix G of the TeXbook.
(InsetMathScript::dy0, InsetMathScript::dy1): set ascent and descent
values using dy01 for non-limits super/subscripts.
(InsetMathScript::metrics): account for the new super/subscript
placement rules when setting ascent and descent values.
* src/mathed/MathData.[Ch]
(MathArray::metrics): cache parameters needed for super/subscript
placement. When nucleus is not empty, set its ascent value to zero
such that it is correctly computed later, otherwise ascent values
less than that of an 'I' are not reported.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17471 a592a061-630c-0410-9148-cb99ea01b6c8
* src/insets/insetcaption.C
(InsetCaption::latex): Copy back encoding to runparams_in
* src/insets/insetfoot.C
(InsetFoot::latex): ditto
* src/insets/insetnote.C
(InsetNote::latex): ditto
* src/exporter.C
(Exporter::Export): Create runparams with document encoding
* src/converter.C
(bool Converters::convert): ditto
* src/buffer.C
(Buffer::writeLaTeXSource): Copy back encoding to runparams_in
(Buffer::runChktex): Create runparams with document encoding
(Buffer::changeRefsIfUnique): ditto
* src/outputparams.[Ch]
(encoding): New member
* src/lyxfont.C
(LyXFont::latexWriteStartChanges): Don't switch the encoding anymore.
This is now done in Paragraph::simpleTeXOnePar.
(LyXFont::latexWriteEndChanges): Ditto
* src/output_latex.C
(TeXOnePar): Ditto
* src/paragraph.C
(Paragraph::simpleTeXOnePar): Switch the encoding between font
changes if needed.
* All other files: Adjust to the changes above
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17470 a592a061-630c-0410-9148-cb99ea01b6c8
method is never invoked (and tell why)
* src/mathed/InsetMathFormulaMacro.C:
* src/mathed/InsetMathHull.C: plaintext(): fix return value
(= number of output characters)
* src/mathed/InsetMathFormulaMacro.h
* src/mathed/InsetMathHull.h: WS changes
* src/mathed/InsetMathDim.C: implement plaintext() for math macros
and add a FIXME that this code shouldn't needed!
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17319 a592a061-630c-0410-9148-cb99ea01b6c8
* BufferView::mouseSetCursor(): do not call setTargetX() here because this needs the mathed coordcache which is not ensured to be up to date. Because of this, cursor movement might need some adjustment.
* InsetMathNest::lfunMousePress(): revert commit 17027.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17028 a592a061-630c-0410-9148-cb99ea01b6c8
* src/CutAndPaste.h/C: add selectionBuffer to save selected text
* src/text3.C: proper handling of paste
* src/lyxfind.C: save selection
* src/BufferView.C: save selection
* src/text.C: save selection
* src/cursor.C: save selection
* src/insets/insettabular.C: save selection
* src/mathed/InsetMathGrid.C: save selection
* src/mathed/InsetMathHull.C: save selection
* src/mathed/InsetMathNest.C: save selection
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17022 a592a061-630c-0410-9148-cb99ea01b6c8
* metricsinfo.h:
- ScreenUpdateStrategy: new enum describing the screen update strategy (replace singlepar boolean).
* UpdateFlags.h:
new Update::Decoration flag.
* BufferView.C
- update(): takes Decoration flag into account (CoordCache is not cleared out). Fills in metrics_info_.update_strategy
* mathed/InsetMathNest.C: adjust the cursor flags to new strategy.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16774 a592a061-630c-0410-9148-cb99ea01b6c8
* InsetBase::drawDecoration(): new method.
* all other files: implement drawDecoration().
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16772 a592a061-630c-0410-9148-cb99ea01b6c8
* src/mathed/MathExtern.C:
(captureOutput): redirect stdin from a file.
(pipeThroughMaxima, pipeThroughOctave, pipeThroughMathematica): use
"output:" instead of "out:" in the informational messages in order to
better match the "input:" message from captureOutput.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16709 a592a061-630c-0410-9148-cb99ea01b6c8
LyX instances. This re-enables copy/paste from the internal clipboard on
OS X (currently broken since Clipboard::isInternal() always returns false for
some reason).
* src/insets/insettabular.C
(InsetTabular::doDispatch): adjust to clipboard interface change
(InsetTabular::copySelection): ditto
* src/mathed/InsetMathGrid.C
(InsetMathGrid::doDispatch): ditto
* src/mathed/InsetMathNest.C
(InsetMathNest::doDispatch): ditto
* src/buffer.[Ch]
(Buffer::readString): New method: Read document from a string
(Buffer::readFile): Change return value from bool to enum (needed
for readString). Return wrongversion if we are reading from a string
and the version does not match.
(Buffer::do_writeFile): make public and rename to write
* src/CutAndPaste.C
(putClipboard): New helper, put stuff to the system clipboard
(void copySelectionHelper): Use putClipboard instead of
theClipboard().put()
(void copySelection): ditto
(void pasteClipboard): new method for pasting in text
(void pasteParagraphList):
* src/frontends/Clipboard.h
(Clipboard::get): Rename to getAsText
(Clipboard::getAsLyX): New method for getting the system clipboard
in LyX format
(Clipboard::hasLyXContents): New method telling whether there is LyX
contents in the clipboard
* src/frontends/qt4/GuiClipboard.[Ch]: Implement the new methods
* src/text3.C
(LyXText::dispatch): Use pasteClipboard for pasting the system
clipboard
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16669 a592a061-630c-0410-9148-cb99ea01b6c8
we got a consensus on this on the list.
Some calls of haveSelection are still missing, but we need to decide the
"persistent selection" question before those can be implemented properly.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16572 a592a061-630c-0410-9148-cb99ea01b6c8
* src/mathed/MathExtern.C
(pipeThroughOctave): take into account that the output from octave
may contain ansi control sequences.
* src/mathed/InsetMathRoot.[Ch]
(InsetMathRoot::mathematica): new virtual method to output n-th
roots in mathematica syntax.
* src/mathed/InsetMathRoot.C
(InsetMathRoot::octave): octave has not a root() command.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16559 a592a061-630c-0410-9148-cb99ea01b6c8