Commit Graph

29284 Commits

Author SHA1 Message Date
Jean-Marc Lasgouttes
b39fb17316 Force a Buffer * argument to math insets constructor
Make sure that math insets have a proper buffer. To this end, make the
Buffer* parameter of InsetMath mandatory and fix the compilation
errors that ensue.

(cherry picked from commit c013799887)
2024-07-05 12:23:59 +02:00
Jean-Marc Lasgouttes
6b54661317 Force a Buffer * argument to MathData constructor
In order to ensure that MathData objects have a valid buffer, the
default MathData() constructor is deleted. This means that a buffer
shall be specified for each MathData object created.

This is fairly mechanical, actually. In particular, in most
InsetMathXxx cases, in MathData and in MathParser, the available
buffer_ member is used.

More specific cases:
- lyxfind.cpp takes the buffer from the Cursor

- calls to vector<MathData>::resize take an additional
  MathData(buffer_) parameter. There are cases where resize actually
  remove cells, and in this case clear() or even erase() have been
  used.

- in InsetMathMacroTemplate, the optional parameters of the
  constructors cannot be allowed anymore (a default value cannot
  depend on another parameter). Therefore there a now two constructors
  instead.

- in MathAutoCorrect.cpp, the MathData objects are not bound to a
  buffer, so that std::nullptr is used instead.

- in MathExtern, use a buffer when one is specified, std::nulptr
  instead.

(cherry picked from commit 57d7130655)
2024-07-05 12:21:47 +02:00
Juergen Spitzmueller
03f59bf49e Remove unneeded cycle checks (#12954)
(cherry picked from commit b5260a3a0f)
2024-07-03 09:50:52 +02:00
Juergen Spitzmueller
e5030ad915 Amend fd78a25a7c
This way, it is a bit more plausible what we're doing

(cherry picked from commit c394a1ccf9)
2024-07-03 09:50:34 +02:00
Juergen Spitzmueller
f9dccb9afb Only issue currentWorkareaChanged() if the work area really changed.
(this function can be called repeatedly while the work area doesn't
change any further)

(cherry picked from commit fd78a25a7c)
2024-07-03 09:50:10 +02:00
Juergen Spitzmueller
2cc5ca27fd Fixup [152811a27d242/lyxgit]
tabBarClicked() should really only reset focus if a click in a different
TabBarGroup happened. And no need to issue workAreaChanged() again.

This has lead to extra and erroneous focus changes (see #12954)

(cherry picked from commit 026c4bd726)
2024-07-03 09:49:54 +02:00
Pavel Sanda
6aef9e394e cosmetics - synchronize with the rest of strings 2024-07-02 23:50:25 +02:00
Jean-Marc Lasgouttes
1d25832edc Avoid crash when InsetBibitem::updateCommand shows a dialog
This is one of the places where a dialog is shown (indicating that
some bibtems have been renamed) while the metrics are not up to date.
Then a draw operation can be triggered too early and a crash can ensue.

Use ad-hoc solution for this case and use Buffer::setBusy(). The
Alert::warning helper cannot really do that since it doe snot know the
current buffer.

(cherry picked from commit c84c59eaec)
2024-07-02 15:15:34 -04:00
Juergen Spitzmueller
b295b39de1 Do not check for diverging input encoding if the files use XeTeX/LuaTeX
Fixes the problem reported at
https://marc.info/?l=lyx-users&m=171986173131406

(cherry picked from commit 4ed8bfb974)
2024-07-02 15:14:28 -04:00
Juergen Spitzmueller
a1141c32eb GuiDocument::onBufferViewChanged(): exit early if dialog is not open
This should fix the bug reported at
https://marc.info/?l=lyx-users&m=171957953801548&w=2

(cherry picked from commit 574db22025)
2024-07-02 15:13:47 -04:00
Richard Kimberly Heck
7d9a8b00f9 Revert "Add temporary directory to About LyX dialog"
This introduced a new string, which is not for 2.4.1.

This reverts commit 5b51bab39b.
2024-06-25 13:38:58 -04:00
Richard Kimberly Heck
5b51bab39b Add temporary directory to About LyX dialog
(cherry picked from commit e7af6afb01)
2024-06-25 11:33:28 -04:00
Pavel Sanda
9ebf3ed0ea Let the middle button pasting respect newlines by default.
This makes it in sync with the new default for Edit > Paste operation.
https://www.mail-archive.com/lyx-devel@lists.lyx.org/msg222233.html
2024-06-24 22:39:20 +02:00
Juergen Spitzmueller
59648b5d35 \cprotect amendment
\cprotect'ed insets do not need forced local font switch; in fact files
with this break in compilation. E.g. a caption with an URL containing
the char '#' and caption text set to a secondary language.

(cherry picked from commit 8659924abd)
2024-06-22 20:03:56 +02:00
Juergen Spitzmueller
ce88e46a3d GuiDocument: do not ask switch-back question on document closing
(cherry picked from commit c243126eb4)
2024-06-16 10:58:06 -04:00
Juergen Spitzmueller
6b3782e07b Prevent division by zero
Fixes crash reported at
https://marc.info/?l=lyx-users&m=171842978728676

(cherry picked from commit 0fc8ee5ace)
2024-06-15 12:05:48 -04:00
Richard Kimberly Heck
d54ed5569d Update doc info for quote-insert 2024-06-15 10:30:43 +02:00
Alexander Dunlap
415932359a FindAdv: Omitting cursor advance at start of search if in mathed.
Fixes #13070 Advanced S&R does not find math symbols at start of document

(Should be cherry-pick of 8c501308, but due to merge conflicts its done
manually)
2024-06-10 20:08:39 +02:00
Udi Fogiel
f04ffb2513 Fix change tracking colors with RTL languages (#12923)
(cherry picked from commit a5749b9c1f)
2024-06-10 15:20:16 +03:00
Udi Fogiel
ecbe5d263d Fix greyedout with RTL languages (#8647)
(cherry picked from commit ee43584140)
2024-06-10 15:09:00 +03:00
Daniel Ramoeller
259c89f45e Extend tab context menu features
Add

- Close Other Tabs
- Close Tabs to Left/Right
- Move Tab to Start/End
- Show Enclosing Folder

to the tabs context menus.

Fix for bug #11963

(cherry picked from commit a114f12868)
2024-06-09 13:50:10 -04:00
Richard Kimberly Heck
3c909daeea Merge branch '2.4.x' into 2.4.1-devel 2024-06-09 13:13:12 -04:00
Enrico Forestieri
4acc6e36e3 Fix textstyle-update handling in mathed
The code was expecting that all properties were specified
in the argument and not only some. Simply do not process
those properties not specified in the argument.

(cherry picked from commit afb70c905b)
2024-06-09 13:10:15 -04:00
Juergen Spitzmueller
5a69b8a184 Return false on invalid input in Font::fromString()
Fixes crash with invalid font-update lfun

(cherry picked from commit 2a9648fc4c)
2024-06-09 13:10:05 -04:00
Richard Kimberly Heck
4bd03197d1 Fix table crash reported on Windows.
(cherry picked from commit 3e796c680a)
2024-06-07 15:59:38 -04:00
Juergen Spitzmueller
d4bd0f9b1e Strip quotes from PackageOptions. Amends a77c84a0b4
(cherry picked from commit 1449fbf9ae)
2024-06-06 19:00:34 +02:00
Jean-Marc Lasgouttes
312dacb7f3 Fixup 39c7199a: the code did not do what it was supposed to
(cherry picked from commit 92ef555abd)
2024-06-06 18:22:26 +02:00
Jean-Marc Lasgouttes
13a6be1f9c Do not draw appendix lines below en of document
This bug is pretty old, but it was not visible because the grey area
below the document would overwrite it.

It would be better to close the frame at the end of the document, but
this is for later.

(cherry picked from commit 7acfbe0fcc)
(cherry picked from commit c96d3a0340)
2024-06-06 18:18:02 +02:00
Udi-Fogiel
41f080c5ef avoid adding redundant preamble to double column hebrew documents (#12919) 2024-06-03 21:05:20 +03:00
Juergen Spitzmueller
c0df9e193c Show full inset context-menu when clicking on text part of collapsible (#10370)
Re-fix this since #12907 has been resolved

(cherry picked from commit 7a85b1b7ca)
2024-06-03 17:58:09 +02:00
Richard Kimberly Heck
90ab21e0e9 Fix table crash reported on Windows.
(cherry picked from commit 3e796c680a)
2024-06-03 11:39:42 -04:00
Kornel Benko
5fdbd2cf32 Adv. F&R: strange dialog text
Fixes #12997
Added 'Scope' to better indicate the searched area.
2024-06-03 08:23:35 +02:00
Richard Kimberly Heck
63b23ce288 Fix bug #13066
Patch from Lorenzo

(cherry picked from commit 0c70f340c0)
2024-06-02 23:08:05 -04:00
Richard Kimberly Heck
701c763221 Merge branch '2.4.x' into 2.4.1-devel 2024-06-02 21:49:54 -04:00
Richard Kimberly Heck
1d7c8325f2 Put new citation after selected item rather than at end of list.
Fixes bug #12940.

Patch from Daniel.

(cherry picked from commit 40ae8644f9)
2024-06-02 20:54:46 -04:00
Thibaut Cuvelier
37a865762b XHTML: export paragraph IDs also for list items, but not for the opening tag of the list.
The IDs are used to link to specific elements (for instance, the User's guide nomenclature).

The beginning of the list (<ul> or <ol>) has the same magic ID as the first item of the list.
2024-06-02 11:59:41 +02:00
Thibaut Cuvelier
c5b1ce5f37 Make comment clearer. 2024-06-02 11:59:18 +02:00
Thibaut Cuvelier
b3d911ef57 InsetInfo: no need to output + explicitly in a shortcut, it is already contained in the sequence. 2024-06-02 11:59:13 +02:00
Jean-Marc Lasgouttes
342a0f5438 Fix display of math hull inset in RTL context
The inversion of margin was done in the wrong way for RTL support.

(cherry picked from commit b469c142ad)
2024-06-01 21:47:53 +02:00
Richard Kimberly Heck
c97375e46d Fix bug #12934
(cherry picked from commit 6484dce51b)
2024-06-01 13:05:42 -04:00
Jean-Marc Lasgouttes
2699a58cd7 Set buffer when creating a MathData from parts of another one
This is triggered by selecting part of an equation under Xcb platform
(x11). Indeed, the current selection has to be sent to the X11 server
and BufferView::requestSelection() is called. Eventually
cap::grabSelection() is the function that creates this partial
MathData object.

Fixes ticket #12947.

(cherry picked from commit ed2f3cb9cf)
2024-06-01 18:45:43 +02:00
Jean-Marc Lasgouttes
76188dcdf1 Try to make sure that math insets have a properly set buffer_ member
Set the buffer of contents that is added to a MathData object through
MathData::insert() (both versions)
MathData::push_back()
asArray()

Also in math macros, initialize look_ with the relevant buffer.

This reduces the number of insets hat do not have a proper buffer.

See #13050 for discussion of this issue.

(cherry picked from commit f3c5ff9cb7)
2024-06-01 18:45:43 +02:00
Richard Kimberly Heck
d780091990 Fix bug #11796.
Toolbars are now locked by default. Unlocked state should be saved
by Qt as a session variable.

Patch from Daniel.

(cherry picked from commit 42a8463aab)
2024-06-01 12:45:19 -04:00
Richard Kimberly Heck
26ab818033 Fix bug #8856.
Show values of cross-references in tooltips.

(cherry picked from commit 2a1c3dce57)
2024-06-01 12:37:05 -04:00
Richard Kimberly Heck
b78bcc2eb2 Fix bug #12981
(cherry picked from commit 61181a3977)
2024-06-01 11:59:39 -04:00
Juergen Spitzmueller
91e90a7c1c Reset require_fresh_start_ after buffer has been viewed/exported
The LFUN buffer-reset-export states to start afresh the export for the
next run, but in fact, the boolean was never reset, so that this was
done for all subsequent runs unless the buffer had been closed and
reopened.

Now the lfun does what it states and only acts on the next pass.

(cherry picked from commit e1cb15ee5d)
2024-06-01 11:39:04 -04:00
Kornel Benko
3235e41e1f Amend 6c3447c8: FindAdv: sometimes a space is added on some math symbols
Restrict the removing to math insets

(cherry picked from commit f248b003a9)
2024-06-01 13:40:56 +02:00
Kornel Benko
fca59304da FindAdv: sometimes a space is added on some math symbols
For example '\int '.
Should fix regression #13070
Spotted  by Alexander Dunlap

(cherry picked from commit 4730ec78f5)
(cherry picked from commit 6c3447c8a6)
2024-06-01 13:40:08 +02:00
Kornel Benko
4bdc7b74ed Amend 4730ec78: FindAdv: sometimes a space is added on some math symbols
Restrict the removing to math insets
2024-05-31 09:09:56 +02:00
Kornel Benko
4730ec78f5 FindAdv: sometimes a space is added on some math symbols
For example '\int '.
Should fix regression #13070
Spotted  by Alexander Dunlap
2024-05-29 14:09:20 +02:00
Juergen Spitzmueller
cc77602066 InsetNote: pass on inset-modify lfuns addressed at other insets (#13068)
(cherry picked from commit ae1ddcbda0)
2024-05-24 10:46:01 -04:00
Juergen Spitzmueller
712baff7b6 Address Qt 6.7 deprecation warning
(cherry picked from commit 44633c7f72)
2024-05-20 17:59:51 +02:00
Juergen Spitzmueller
26834b7a07 Initialize is_long_tabular before updateIndexes() (which employs it)
(cherry picked from commit 10b5f03d95)
2024-05-20 17:59:30 +02:00
Richard Kimberly Heck
39c7199afc Return a reference, not a copy.
Stupid mistake from 2009. Thanks to Scott and JMarc for tracking
it down.

(cherry picked from commit de5f63eeb3)
2024-05-19 18:30:56 -04:00
Juergen Spitzmueller
8f65ae16e1 Amend 207eaeee90
The upstream encoding needs to be updated after this routine
(see comment in OutputParams.h:183ff.)

(cherry picked from commit 2d95f8fc16)
2024-05-16 17:05:54 +02:00
Juergen Spitzmueller
576d3836cf Amend a716fb96b5
(cherry picked from commit af59551b1b)
2024-05-15 13:33:18 +02:00
Juergen Spitzmueller
176ecba630 NeedCProtect -1 also for InsetLayouts
(cherry picked from commit a716fb96b5)
2024-05-15 13:32:47 +02:00
Juergen Spitzmueller
0af7259025 Introduce NeedCProtect -1 layout option
It turns out beamer frame does not allow \cprotect and errors if it is
used. Hence we need to prevent it in this context entirely.

(cherry picked from commit 207eaeee90)
(cherry picked from commit f05fd78754)
2024-05-15 13:25:03 +02:00
Juergen Spitzmueller
f05fd78754 Introduce NeedCProtect -1 layout option
It turns out beamer frame does not allow \cprotect and errors if it is
used. Hence we need to prevent it in this context entirely.

(cherry picked from commit 207eaeee90)
2024-05-12 19:02:59 +02:00
Juergen Spitzmueller
8b0546dfe7 Consider CT in dash mechanism (#13062)
(cherry picked from commit fe4f0dbf0b)
2024-05-11 13:02:39 -04:00
Jean-Marc Lasgouttes
13a34d6cd1 Set buffer_ correctly when inseting a math macro over a selection
The code that handles this special macro insertion (in
Cursor::mathMacroClose())) is very weird: it inserts the contents of
the macro _after_ the macro and later, since the macro is 'greedy', it
will eat this contents and put it in its first macro cell.

Does it make sense to you? It does not ake sense to me either. Anyway,
this is the point where one should make sure that the buffer is set.

Fixes ticket #12682.

(cherry picked from commit b45a957929)
2024-04-25 20:27:36 +02:00
Jean-Marc Lasgouttes
21096f696a Sanitize cursors after a buffer has been reloaded
When a buffer is reloaded, its content may remain the same, but the
memory allocation is new, so that the inset pointers in cursors are
now wrong. This requires to sanitize the cursors held by the buffer
views.

Before the biginset branch, some full metrics computation call that is
now removed probably did that as a side effect. Now we have to be more
precise.

To this effect, introduce WorkAreaManager::sanitizeCursors() and use
it in Buffer::reload().

(cherry picked from commit c1fd622c51)
2024-04-22 11:35:15 +02:00
Juergen Spitzmueller
237b0404ff Handle the case of outdated chkconfig.ltx in user directory
(cherry picked from commit b8ff824a4f)
2024-04-21 09:36:21 +02:00
José Matos
cc75da1c3e Convert $${python} placeholder for graphic conversions
(cherry picked from commit cdcaf0e7b6)
2024-04-20 20:20:21 +01:00
Stephan Witt
5554fe9aeb #13049 add window activation for preferences to avoid it be hidden by main window on mac after alert prompts
(cherry picked from commit 4c1db7cad8)
2024-04-19 14:01:41 +02:00
Jean-Marc Lasgouttes
c9f5f34fd7 Always repaint the gray area below main inset
Now that SingleParUpdate does not always lead to a full screen update
when the height of the paragraph changes (see new behavior of
updateMatrics(bool)), it is necessary to make sure that the grey area
below the main page is always repainted.

(cherry picked from commit 1a11abe439)
2024-04-18 16:46:38 +02:00
Jean-Marc Lasgouttes
15eef6a2c7 Do not compute metrics at each preview when loading file
With the branch-test.lyx file from #12297, loading takes forever when
previews are activated. This is because each preview element causes a
full screen metrics recomputation.

This commit just skips these calls and only does one when all previews
have been obtained. As a result, computing the previews takes 1 second
instead of 25 seconds on branch-test.lyx.

Part of bug #12297.

(cherry picked from commit 2449693301)
2024-04-18 16:45:58 +02:00
Jean-Marc Lasgouttes
e5aaa64b63 Improve the code that limits scrolling at top/bottom
The most visible part of this commit is the move of part of
BufferView::updateMetrics to a new TextMetrics::updateMetrics. This
new method makes sure that metrics are known for all visible paragraphs
(starting from anchor), and that the positions of the paragraphs have
been recorded.

This method is called up to 3 times in BufferView::updateMetrics:
* unconditionally, to update all visible metrics,
* then, if the bottom of the document is visible and too high, after
  updating the anchor ypos,
* and similarly if the top of the document is visible and too low.

This fixes for example the case where one jumps to Section 5.3 at the
end of Tutorial and 'scroll_below_document' is false.

Some now redundant code is removed from BufferView::scrollToCursor.

The anchor-setting code in BufferView::draw is not clearly useful, but
left here just in case. It generates a debug warning, though.

Part of bug #12297.

(cherry picked from commit f15d2ebf38)
2024-04-18 16:45:58 +02:00
Jean-Marc Lasgouttes
2434a3a288 Implement quick scroll
Replace flag parameter for updateMetrics() by a `force' boolean. When
it is false, the method keeps the metrics of paragraphs that are still
visible in WorkArea instead of computing everything afresh. All it has
to do is update their positions.

Add code to updateMetrics() to update the value of the anchor pit/ypos
(similar to the one in draw()).

Update processUpdateFlags() to use this when update flag is ForceDraw.

Modify scrollDocView() to just change the anchor paragraph position
when the scrolling operation would re-use some of the existing
paragraphs.

The time needed to update the metrics when scrolling with mouse in the
branch-test.lyx document is now divided by 20!

Part of bug #12297.

(cherry picked from commit 08010c6a5e)
2024-04-18 16:45:58 +02:00
Jean-Marc Lasgouttes
b1a0983570 Introduce new helpers ParagraphMetrics::top/bottom
This avoids code with position/ascent/descent that is difficult to follow.

No change in function intended.

(cherry picked from commit 0b6105b924)
2024-04-18 16:45:58 +02:00
Jean-Marc Lasgouttes
5e1c414a21 In the no-draw phase, do not cache the positions of not visible insets
This can make a big difference for a very large branch that contains
lots of equations.

This is complementary to the previous patch, since instead of reducing
the number of calls to updatePosCache, we make it faster.

In the same test of scrolling with mouse wheel through the
branch-test.lyx document, one finds a 23% improvement for
BufferView::updateMetrics().

Part of bug #12297.

(cherry picked from commit 7f85024f80)
2024-04-18 16:45:58 +02:00
Jean-Marc Lasgouttes
e51f9d9f88 Remove some redundant calls to updatePosCache
The setting of insets positions was done twice in updateMetrics.
When one of the paragraph is a huge branch, this can be very expensive.

This leads to a 17% improvement on updateMetrics time on a scrolling test.

Part of bug #12297

(cherry picked from commit d19ade9a61)
2024-04-18 16:45:58 +02:00
Jean-Marc Lasgouttes
13c7fd78c6 Enable Update::SinglePar in nested insets too
The idea of single par update is to try to re-break only the paragraph
containing the cursor (if this paragraph contains insets etc.,
re-breaking will recursively descend).

The existing single paragraph update mechanism was tailored to work
only at top level. Indeed changing a paragraph nested into an inset may
lead to larger changes.

This commit tries a rather naive approach that seems to work well: we
need a full redraw if either

1/ the height has changed
or
2/ the width has changed and it was equal to the text metrics width;
   the goal is to catch the case of a one-row inset that grows with
   its contents, but optimize the case of typing in a short paragraph
   part of a larger inset.

NOTE: if only the height has changed, then it should be
  possible to update all metrics at minimal cost. However,
  since this is risky, we do not try that right now.

Part of bug #12297.

(cherry picked from commit 9a96726bcd)
2024-04-18 16:45:58 +02:00
Richard Kimberly Heck
365ff71e23 Defer construction of temporary cursor.
We were doing this on every mouse movement. I.e., for every single
pixel the mouse traverses. It can be expensive if there are a lot
of math insets.

(cherry picked from commit 4e8aa89eb9)
2024-04-16 12:20:51 -04:00
Juergen Spitzmueller
d29baf59a4 Disable language package choice if the class preloads a package
(cherry picked from commit 5477451e36)
2024-04-14 08:13:55 +02:00
Juergen Spitzmueller
d21042299f Set cursor font after pasting to PassThru inset (#12592)
(cherry picked from commit 09c72d7c8d)
2024-04-14 08:09:56 +02:00
Koji Yokota
76dbb9dc40 Fix wrong position of conversion windows of the input method #11723, #13054 2024-04-12 21:17:04 +09:00
Jean-Marc Lasgouttes
25f1174203 Fix compilation with msvc 2019
'uint' is not defined, 'unsigned int' is better.

(cherry picked from commit c7f53afd31)
2024-04-08 10:43:05 +02:00
Jean-Marc Lasgouttes
89afdb050f Do not include <QDate> in InsetInfo.h
This is used by getDate/getTime, which actually should not be
InsetInfoParams methods, but functions in anonymous namespace.

(cherry picked from commit 51562ff377)
2024-04-08 10:42:46 +02:00
Juergen Spitzmueller
87b3bea823 Fix assertion when pasting paragraph with insets in lyxrc.ct_markup_copied
This has to be done after the inset buffers have been initialized.

(cherry picked from commit 9198ed5965)
2024-04-07 06:31:26 +02:00
Pavel Sanda
7e2c1dca36 Improve stats update times for buffer switches and toolbar toggles. 2024-04-05 23:14:25 +02:00
Pavel Sanda
167534f6cf * quote-insert lfun description 2024-04-05 19:50:05 +02:00
Pavel Sanda
ae07763abf Allow relative statistics values in statusbar.
https://www.mail-archive.com/lyx-devel@lists.lyx.org/msg221311.html
2024-04-05 19:44:25 +02:00
Jean-Marc Lasgouttes
0cd169d6ba Compilation fix with Qt < 5.7
Qt::ImAnchorRectangle has only been introduced in Qt 5.7. Since it is
used to answer a query from the IM machinery, there is no need for
it with older Qt versions.

(cherry picked from commit 6260689fd5)
2024-04-04 18:20:33 +02:00
Juergen Spitzmueller
3b4d9f8606 Dissolve some shortcut conflicts in the wake of f3a4602c4c
(cherry picked from commit 728175f9ac)
2024-04-03 09:15:46 +02:00
Juergen Spitzmueller
c92d14e8c9 Smarter menu length calculation
It is possible I have missed some shortcut conflicts, so please report
if you find any.

(cherry picked from commit f3a4602c4c)
2024-04-03 09:15:27 +02:00
Juergen Spitzmueller
1dad179256 Fix label escaping in InsetMathRef (#12980)
This was completely broken: the IDs have been escaped in the LyX file
(which they absolutely shouldn't) but not in all LaTeX output (which
they should).

(cherry picked from commit 98080ca0d5)
2024-04-02 20:20:13 +02:00
Daniel Ramoeller
f957964e9b FindAdv: no paragraph indentation for more space in the search string
See #11555

(cherry picked from commit 638c04dd6a)
2024-04-02 11:52:43 +02:00
Kornel Benko
32a680e4fe FindAdv: Handle neg-spaces like normal space if searching without format
(cherry picked from commit 07cacef398)
2024-04-02 11:52:05 +02:00
Kornel Benko
1edbf565e4 Rename hasToString() to findUsesToString()
There are special cases where the toString() exist,
but still plaintext() is not to be used by find.

(cherry picked from commit 8de81e8dc1)
2024-04-02 11:51:15 +02:00
Juergen Spitzmueller
31ec96e01f Fix context menu of InsetMathRef 2024-04-01 17:59:56 +02:00
Juergen Spitzmueller
a020bbc4a8 Fix backslash LaTeXifying in InsetCommand
\ was transformed very early to \textbackslash{}, but then the following
routines escaped braces in the string, so we wrongly ended up in
\textbackslash\{\} and "\{} in the output
2024-04-01 10:57:27 +02:00
Juergen Spitzmueller
812e306dad Factor out shared method
Amends babb5b007b
2024-03-31 12:40:27 +02:00
Juergen Spitzmueller
babb5b007b Fix crash with quick search starting with mathed selection
setCursorSelection does not work with math. Copy the method from
spellchecker.
2024-03-30 10:14:34 +01:00
Juergen Spitzmueller
698f922d19 Do not enter page break in heading (#13040)
Rather than that, put it before or after, or disallow,
depending on the position.
2024-03-28 18:03:54 +01:00
Juergen Spitzmueller
60cffcd9b7 Fix alignment of screen font preview in prefs (remaining part of #13046) 2024-03-24 09:00:41 +01:00
Jean-Marc Lasgouttes
4dfebbe9da Fix display of a math hull inset in a tight inset
This is a kind of hack. This allows InsetMathHull to state that it
needs some elbow room beyond its width, in order to fit the numbering
and/or the left margin (with left alignment), which are outside of the
inset itself.

To this end, InsetMathHull::metrics() sets a value in
MetricsInfo::extrawidth and this value is added later to the width of
the row that contains the inset (when this row is tight or shorter
than the max allowed width).

Fixes bug #12320.
2024-03-22 15:40:40 +01:00
Jean-Marc Lasgouttes
6d62d8009f Revert "Fix display of a math hull inset in a tight inset"
This commit will be replaed by a better solution.

Part of ticket #12320.

This reverts commit 4bbd4a45e7.
2024-03-22 15:08:26 +01:00
Thibaut Cuvelier
fd37845075 Amend 16660d12.
The previous commit introduced wrong behaviours for <>. The new code carefully escapes what needs to be escaped from LaTeX, using the now-standard XML tools (XMLStream).
2024-03-21 21:32:45 +01:00
Thibaut Cuvelier
16660d12b4 MathML in HTML: don't escape <> for a raw LaTeX output.
In some cases (I only found numbered equations), the LaTeX output still has a bit of HTML. For numbered equations, using \tag{X} (as suggested in https://www.lyx.org/trac/ticket/13048) would require fiddling with the output. KaTeX doesn't support \label. This patch is probably the easiest and most reliable fix.

Fixes https://www.lyx.org/trac/ticket/13048.
2024-03-21 00:29:23 +01:00