QKeySequence returns special characters for keys on the mac rather than
textual key names (as on other OSes).
Since these symbols are not included in many fonts, we re-translate them
to textual names
Fixes: #10641
(cherry picked from commit 5f45b3ed9c851f0d01fcc8fd17c3b25f6efd47c3)
The goal of this patch is to make "self-insert <string>" act as a
sequence of individual self-insert calls. Once it is done, the
insertion of the commit string in GuiWorkArea can use that, which
fixes the issues described in bug 11183.
1/ in InsetMathNest, SELF_INSERT is rewritten to be a proper loop of
interpretChar, instead of inserting the string as characters. This
solves the issue of interpreting ^ properly.
2/ the text version does not need to be changed (the loop is rewritten
using a range, though).
3/ Then {{{GuiWorkArea::inputMethodEvent}}} is changed to invoke
directly self-insert. This removes the update issues.
Fixes bug 11183.
(cherry picked from commit ad5548cfe39a17389ca721aab896e876f2cd4124)
A new UNDECIDED state is used if multiple cells with differing border
settings are selected.
This prevents additional borders to be set without being asked.
Fixes: #10010
(cherry picked from commit 99aefa5fd2c2184f0a67930046956df7d8f611df)
Rather than checking for hardcoded title commands such as \maketitle,
use the titlename and titletype as defined in the layout.
This now also includes title environments.
Fixes part of #6461
(cherry picked from commit 429edc0a59a0509445bb93cd7d60c3d9ff36bd6b)
Also, use EuropeanNumberSeparator information rather than relying on an
own (incomplete) list of number separators.
Fixes: #4057
(cherry picked from commit 611df441b6e44ad641d6d9424fe68fe72d641706)
Minted does not have a language option but it is possible to enter
this option in the LyX interface for compatibility with the listings
package, and also for letting to enter a language not present in the
gui. So, this option is only used for properly specifying a language
in a listing, unless it is entered in the document settings dialog.
This case was not foreseen and thus the option was being passed to
the package as is, causing havoc. With this commit the option is
still available but is used to set a default language for a new
listing in place of the default "tex" language used so far.
(cherry picked from commit 16ca5290c0d619df23406275e6698594b90ce7ab)
We transform them to hex representation via
QByteArray::toPercentEncoding()
Fixes: #11165
(cherry picked from commit 01d8f418943f5f63f329658d387a7dbd9a024c91)
The problem with the previous attempt was that, every time through
updateBuffer, we looked up the file location using kpsewhich, which
took too long on Windows. The new solution is to cache that info, and
to look it up only when we need it.
Previously, this info would have been re-read whenever we parsed the
bibfiles. So we re-read it now whenever the bibinfo cache is invalid,
which is less often, but should be good enough. We can add more such
re-reads if need be.
(cherry picked from commit 601449269939150bb7452698809e59c00a98a20f)
These are not really right. Things are hardcoded that probably should
not be. These are marked (hopefully) with "# RKH" comments. Possibly
what's needed is another flag? Anyway, help welcome.
On some recent Windows versions, GetLastError() may also return
NO_ERROR instead of ERROR_IO_PENDING during an overlapped write
operation to a pipe. This was confusing the state machine in
Server.cpp so that replies to commands were scheduled but were
never actually output.
(cherry picked from commit cf5f2661dc0a902e541704172ab369ba3e5a54d6)
Qt 5.2 introduces the possibility to place a checkbox on a QMessageBox,
so we need no longer to use our own crude dialog.
(cherry picked from commit 0148ef7e6c2f01ce96b91567af5e2b160f9d070a)
Apparently, a new paragraph is started after a float even if
no blank line is actually present. So, account for this fact.
(cherry picked from commit f6922b8c88d4d2e5bcf39264b8bac056470f49b8)
This is detected when an undo group is open and contains at east one
element. This means indeed that changes are in progress. Note that the
group is in general opened in GuiApplication::dispatch. The code there
is changed to ensure that the group is closed before updating the
screen.
This patch is experimental. It is expected to be replaced in master by
a more complete solution. It could in the meantime be backported to 2.3.x.
Fixes bug #11159.
(cherry picked from commit c7496a11b2f0bd714b6c2ee0f7189ff420e014ce)
(cherry picked from commit 4d0c43f9aa944649d4b5788c5de98d37c280a036)
The problem is that popping dialogs during reload can cause paint
events for which we are not ready. If this does not work, then we
can introduce a new flag, besides 'busy', for that case. But busy
does not seem to be used very widely, so hopefully this works.
Note that when paintEvent is triggered on macOS, the least we can do
is to copy our backing store to the screen.
(cherry picked from commit 19e6977b5b527ec8311da35d8f0a40d6fd509080)
(cherry picked from commit d03deeca0c666256ea68087c5c70b8de73b66edc)
Completion uses a complicated async scheme based on timers to update
itself. This is probably not necessary anymore and is fragile to
event order changes.
This is what happens with the new painting scheme. Therefore the
asyncHideXXX() methods have to be made more robust and detect whether
completion state has changed by the time they are triggered.
(cherry picked from commit f1ea7fee5cda3fbbeb9fdbb8bec2bd91c0745e56)
This avoid cases where the blinking cursor erases the frame.
(cherry picked from commit 4e9084b3e48697efc3eb4cc7a76b87f99a5e4aed)
(cherry picked from commit 6bcc7d6e42a53979b5c002ea445cf1e32006571e)
When an image has to be loaded a second time and the cache
is not used or the image is not in the cache, its preview is
going to be regenerated again. Hence, if the same image
appears more than once on screen, avoid requesting simultaneous
generation of the same preview.
See also this thread:
https://www.mail-archive.com/lyx-devel@lists.lyx.org/msg205057.html