Stephan Witt [Sat, 12 Sep 2020 12:34:56 +0000 (14:34 +0200)]
#6401 correct cursor movement for word forward/backward with enabled Mac style (mac_like_cursor_movement)
The change includes a rewrite of the cursor movement when „mac style“ is enabled and don’t change anything otherwise.
The new code for mac uses the document iterator to go forward or backward. The traversal stops at word boundaries.
If going forward the position increments until a word is reached (if not already inside) and stops at the end of the word.
If going backward it does the same in opposite direction. The cursor jumps over non-editable insets and math.
Editable (open) insets are entered and the cursor move detects word boundaries inside them.
Scott Kostyshak [Fri, 11 Sep 2020 18:06:33 +0000 (14:06 -0400)]
Uninvert two Hebrew pdf5 systemF tests
These exports now pass, and the output looks reasonable to me
(although I do not know Hebrew). I believe they work now because of
Jürgen's fixes at a7ad0747 and d7b64b8e.
Instead of working around crashes in update of caret geometry, only
request it as needed. The actual computation will take place just
before painting the caret.
It might be that this is overkill and that caret geometry should be
updated unconditionally. One would have to to some timing while idle to
ascertain that.
The macros defined in the symbols file are only used for on-screen
representation, so that their definition should not require the use
on any latex package. Their definition should be taken into account
only when they are overridden by user macros with same name.
The rules for typesetting math differ from the rules for typesetting
text. For example, two italic 'f' chars have to be typeset more closely
than two 'o' chars in text mode, but not in math mode. Qt provides a
method that returns the distance appropriate for drawing a subsequent
character in text mode, but nothing for math mode. Typically, the
distance appropriate for drawing the next character in math mode is
the actual width span by the character, corrected by the rules of
an appendix in the TeXbook. Recently, those rules are followed more
closely in LyX but not exactly, and we have to find a way to adapt to them.
Some symbols may need more spacing around them than the width they span.
So, we use the distance suggested by Qt, unless it is less than the
width of the rectangle bounding the symbol. Before Qt 5.11 the used method
was QFontMetrics::width(), but since then it has been declared obsolete
in favor of QFontMetrics::horizontalAdvance(), whose name conveys better
its meaning.
Cmake build: Try to omit using directory names as source-files in po
Previously there are po-entries like
#: lib/examples/Articles:0 src/TocBackend.cpp:296
#:src/frontends/qt/GuiExternal.cpp:87
msgid "External Material"
msgstr ""
Instead of working around crashes in update of caret geometry, only
request it as needed. The actual computaiton will take place just
before painting the caret.
It might be that this is overkill and that caret geometry should be
updated unconditionally. One would have to to some timing while idle to
ascertain that.
Fixup f96b99dcb35: read correctly \limits after macros
Move InsetMacro::limits_ to InsetMacro::Private, where it should have
been from the start. This means that limits_ is now copied when the
macro is cloned.
When the fonts distributed with texlive with same family name
as ours are also managed by fontconfig, Qt is not able to
discriminate ours by the style only. In order to be sure Qt
will load our fonts, we change the foundry name from 'PfEd'
to 'LyEd' and augment the font family name with this foundry
name. This only works on *nix, because adding a foundry name
seemingly breaks things on Windows. However, this is a *nix
only problem, seemingly.
This restores the debug output as it was intended before the
introduction of the LYXERR macro that was unconditionally outputing
an end of line. This is how this output was appearing until lyx 1.5:
Looking for font family cmr10 ... got: cmr10
got it normal!
instead of as it was since lyx 1.6 and until now:
Looking for font family cmr10 ...
got: cmr10
got it
normal!
Stephan Witt [Sun, 30 Aug 2020 13:34:44 +0000 (15:34 +0200)]
#11756 cleanup the view menu on Mac
Using US english desktop language LyX's Mac OS adds some items to the view menu:
1. Show/Hide Tab Bar and
2. Enter Full Screen
These items won't work properly and it's better to hide them.
Stephan Witt [Sun, 30 Aug 2020 09:24:04 +0000 (11:24 +0200)]
#11756 hide additional menu items in edit menu on Mac
Mac OS adds two extra menu entries to the edit menu.
These menu items are:
1. Start Dictation...
2. Emoji & Symbols
Both menu items don't work with LyX.
Therefore they shouldn't be present and the new code hides them.
Both QTextLine::naturalTextWidth() and QTextLine::horizontalAdvance()
return the same value for \fint. However, examining esint10.ttf with
fontforge does not reveal any issue with the metrics. The fact that
\fint seems to be the only affected symbol might be due to its code
point, which corresponds to a space, so that maybe Qt makes some
assumptions on the metrics.
As QTextLine::naturalTextWidth() returns the width of the line that is
occupied by text, in the case of a single symbol we can obtain the
same value by using the width of the rectangle bounding the symbol.
Scott Kostyshak [Sat, 29 Aug 2020 15:09:54 +0000 (11:09 -0400)]
ctests: invert LuaTeX + DavidCLM exports
Thanks to Jürgen, who mentions the following:
luaotfload does not find "DavidCLM". In fact, at least on my system,
there is no such font, only "DavidCLM Medium" (and other shapes). This
one is found. Apparently, luaotfload cannot infer from the one to the
other.
As opposed to LuaTEX, XeTeX also queries TEXMF so maybe it just finds
its font there.
Scott Kostyshak [Wed, 26 Aug 2020 18:19:45 +0000 (14:19 -0400)]
ctests: add ertroundtrip lable and invert a lyx22x
In many cases, round trip with older formats involves exporting ERT
or preamble code in the backwards conversion. In the forwards
conversion, if this code is not parsed, often errors can result.
However, in many cases, especially for older formats, it might not
be worth the time or code complexity to address these cases. Such
tests are labled "ertroundtrip".
This commit also inverts a currently failing lyx22x test under the
label "ertroundtrip" since the above paragraph is my best guess as
to why that test is failing. It is likely not worth the time to fix
it, especially since the APA7 layout wasn't even shipped for LyX
2.2.x.