Commit Graph

46367 Commits

Author SHA1 Message Date
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
1f6f3b4f0a Update sk.po 2024-06-01 14:06:26 +02: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
Juergen Spitzmueller
091b8a93a8 Update status 2024-05-20 18:01:33 +02: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
Juergen Spitzmueller
ac6d011e7f Update aastex63.layout according to https://journals.aas.org/aastexguide/#acknowledgments
(cherry picked from commit d3d8b3d748)
2024-05-20 17:57:29 +02:00
Juergen Spitzmueller
fe2e5dcf35 Document NeedCProtect -1 InsetLayout option 2024-05-15 13:58:28 +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
1511516ef7 Document NeedCProtect -1
(cherry picked from commit ea004cdb28)
2024-05-15 13:30:18 +02:00
Juergen Spitzmueller
4a81296b3d Amend 207eaeee90
FragileFrame, as opposed to normal frame, supports cprotect (and needs
it in the usual circumstances)

(cherry picked from commit eeb3f9e719)
(cherry picked from commit 50cd148bd2)
2024-05-15 13:25:32 +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
Richard Kimberly Heck
965661f07c Status 2024-05-11 13:03:54 -04: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
Jean-Marc Lasgouttes
9b4b05e64e Document biginset branch 2024-04-21 22:26:41 +02:00
Richard Kimberly Heck
e83f91252c Status 2024-04-21 15:56:00 -04:00
Juergen Spitzmueller
64393c7c6e Status update 2024-04-21 09:34:35 +02:00
Juergen Spitzmueller
9871c17ec2 gbrief-2 loads babel internally. So don't load it ourselves.
This makes the class fully functional with non-TeX fonts (it uses
\babelfont for the purpose). Before, docs were compiling but the
output was wrong.

(cherry picked from commit c3c96a446b)
2024-04-21 09:32:15 +02:00
Juergen Spitzmueller
7b7322b831 g-brief loads babel internally. So don't load it ourselves.
This makes the class fully functional with non-TeX fonts (it uses
\babelfont for the purpose). Before, docs were compiling but the
output was wrong.
2024-04-21 09:30:27 +02:00
Kornel Benko
10ca66a7fa Cmake install: Forgotten to install tabletemplates.
(cherry picked from commit d05e295ddc)
2024-04-20 19:36:52 +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
Juergen Spitzmueller
276a80fccb Document 76dbb9dc4 2024-04-13 07:16:21 +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
Juergen Spitzmueller
0ecfb01a79 Document 0d3d91c055
(cherry picked from commit 012c739668)
2024-04-06 10:00:24 +02:00
Pavel Sanda
6dc68a632e * status.24x 2024-04-05 23:15:53 +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
a11a4db8b2 * status.24x 2024-04-05 19:45:09 +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
Kornel Benko
a2dbac8e07 Update sk.po 2024-04-03 13:08:36 +02:00
Juergen Spitzmueller
3034a150f2 Add status file 2024-04-03 09:35:12 +02:00