Commit Graph

21916 Commits

Author SHA1 Message Date
Jean-Marc Lasgouttes
57cb454fbe Resources.cpp is a built source, it should not be in SOURCEFILES
We want to avoid that Resources.cpp be distributed in the tar file.

(cherry picked from commit ff17b366a0)
2016-04-29 17:36:57 +02:00
Jean-Marc Lasgouttes
631098367e Avoid narrow boxes when using \width as box width unit
When the box has a special width, one should not consider that as a fixed width. Otherwise, due to implementation quirks, the width will be set on screen as 1 inch.

A better solution would be to actually set the width by taking in account the contents width, height ans total height. This is not very difficult, but I do not know whether it would workout well in the work area.

Fixes bug #10048.
2016-04-19 11:53:48 +02:00
Jean-Marc Lasgouttes
6756637eb5 When handling mouse events, make the undo group a bit larger
notifyCursorLeave can delete empty insets in mathed.

Fixes bug #10022.
2016-04-19 11:46:02 +02:00
Jean-Marc Lasgouttes
cd499fdef4 Erase correctly math multi-cell selection
What a selection spans several cells in mathed, and a deletion occurs though LFUN_CHAR_DELETE_FORWARD for example, only the case of a proper grid was handled. When no such grid exists, all cells between the first and the last index are cleared now.

Fixes part of bug #9747.
2016-04-19 11:31:59 +02:00
Jean-Marc Lasgouttes
7799e7960c In mathed, select only current cell on double-click
Keep the behavior of split selection with triple click.

Fixes part of #9747.
2016-04-19 11:22:59 +02:00
Jean-Marc Lasgouttes
8d76be389d When a counter is stepped, reset recursively all slaves
Fixes bug #10063.
2016-04-18 12:06:06 +02:00
Richard Heck
7b896e0db8 Fix problem reported by Kornel in this thread:
https://www.mail-archive.com/lyx-devel@lists.lyx.org/msg193248.html
The static InsetLayout could be initialized before its members were, as
JMarc realized here:
		https://www.mail-archive.com/lyx-devel@lists.lyx.org/msg193293.html

(cherry picked from commit 23f6c1c962)

Conflicts:
	src/TextClass.cpp
2016-03-27 19:39:36 -04:00
Guillaume Munch
30e46b7356 Fix perf issue when displaying the symbols gui (#9968)
According to callgrind, the time taken to display the symbol dialog is spent in
updateSymbolsList. No longer translate strings for every symbol. This speeds
it up more or less by a factor two.
2016-03-13 19:28:42 +00:00
Guillaume Munch
17fa787ba2 Amend 13a993fd
Correctly backport other changes.
2016-03-11 01:11:03 +00:00
Guillaume Munch
13a993fda8 Fix perf issues and crash when showing 1'100'000 items (#9968) 2016-03-11 00:29:26 +00:00
Guillaume Munch
bc858ab69d Fix SIGSEGV when introducing a new shortcut (#9869)
removeShortcut() restores default settings, therefore was used incorrectly. I
introduce deactivateShortcuts() which only removes assignments.

Clean up a bit the lack of view / model distinction (getting rid of the crashing
code at the same time).

Repair inconsistency of the selection in the "modify" case. (regression at
717d19d3c)

Make the test for existing bindings a bit more robust. (Not perfect yet.)

Focus on the item that has just been added/modified. (cosmetic)

(cherry-picked from 20a9c7a)
2016-02-24 17:20:16 +00:00
Uwe Stöhr
dc6bc435a4 InsetBox.cpp: backport fix for bug #8712 2016-02-11 23:56:02 +01:00
Jean-Marc Lasgouttes
b1323be32c Get rid of use_preview_ in various insets
This concerns InsetPreview, InsetIPA and InsetMathHull.

Caching such a value is bad when opening the same buffer in two views.
In this case, it is not necessary to remember use_preview_ at all,
actually.

Also remove private member dim_ which is not used and remove some trailing whitespace.

Fixes bugs #9085 abd #9957.
2016-02-09 17:18:45 +01:00
Jean-Marc Lasgouttes
942b62ac0f Do not record undo in the tabularFeatures helper
Since the low-level version of tabular features is only called by the high-level one, it does not make sense to record undo there. It is much better to do it once in the high-level handler, rather than 37 times (yes!) at lower level when the tabular GUI calls tabular-feature with all the settings at once.

With large tables, this avoids to keep 37 copies of the table in Undo stack.
2016-02-09 16:41:12 +01:00
Jean-Marc Lasgouttes
ba3269fd8f When selecting whole row, reset properly the pit()
Since different cells in a row can have different number of paragraph, take care of setting cur.pit() when selecting a row/column.

Fixes bug #9955
2016-02-03 15:51:44 +01:00
Georg Baum
ef81af7037 Fix compilation with boost 1.60
Newer boost versions use complicated type traits for boost::next and
boost::prior, which do not work with the RandomAccessList iterators.
The long term solution is to use std::next and std::prev, for now supply
simple replacements for compilers that do not support C++11 yet.

This is was cherry picked from b5963300 and 7e72c1d0d3.
2016-02-03 15:51:08 +01:00
Uwe Stöhr
0ae098c66b ViewSourceUi.ui: backport bug #4430 2016-01-23 16:25:02 +01:00
Jean-Marc Lasgouttes
8c6cfd912a Update to boost 1.60
Also fix a warning by backporting 43d75a07.
2016-01-14 19:08:46 +01:00
Jean-Marc Lasgouttes
3fad30da63 Fix entering inset in visual cursor mode
Improve the test whether cursor has moved in Cursor::posVisLeft. The code for posVisRight had already been fixed for #5764 at 0730c923, but this replaces both tests by the proper == operator.

Fixes bug #9913.
2016-01-05 16:55:32 +01:00
Jean-Marc Lasgouttes
0e4442e928 When moving cursor, always reset anchor
This applies to BufferView::moveToPosition, which is used for bookmarks and initial cursor position (on loading).

Fixes bug #9912.
2016-01-05 16:44:17 +01:00
Richard Heck
9d4406268c Fix bug #9907: We get a crash if we first close a master buffer one of
whose children is also a child of another buffer, then try to close that
one.

The problem is that we do not check properly to make sure that the child
is not a child of some other buffer. Now we do.

(cherry picked from commit 0407364392)
2016-01-05 10:07:14 -05:00
Richard Heck
3799213096 Rewrite the BufferList::releaseChild method so that it only checks
whether a given child Buffer is also a child of some other parent.
Then do the releasing or resetting where this method is called.

There should be no change of behavior with this patch.

(cherry picked from commit e8ffb0c97a)
2016-01-05 10:05:51 -05:00
Stephan Witt
a5e5b3ff5a #9889 slightly improved layout management to avoid too small popup window for advanced F&R 2015-12-31 15:02:57 +01:00
Jean-Marc Lasgouttes
b01f7a6bdd Avoid swapping a cell with itself
Gcc STL debugging feature asserts when swapping an object with itself. This happens in some cases with math grids that have only one column.

A quick review of other uses of swap() in the code base did not reveal any other dubious case.

Fixes bug #9902.
2015-12-29 19:47:10 +01:00
Richard Heck
1f8fd79c41 Since '\n' and '\t' are printable characters, the second clause
never triggered, and we output them anyway.
2015-12-12 15:34:06 -05:00
Richard Heck
ca986bd33f Do not try even to hide buffers that are being processed by LyX.
Should fix #9711.

(cherry picked from commit a5ea77410e)
2015-12-12 13:24:25 -05:00
Scott Kostyshak
20a70d3aba Revert "InsetFootlike.cpp: disable listings inside footnotes"
Although aa82c1cc fixed #9321, it broke a valid use case that was
reported by a user at #9785. Hopefully we can come up with a better
fix for #9321.

This reverts commit aa82c1cc19.
2015-12-08 14:44:48 -05:00
Jean-Marc Lasgouttes
95bc23133a tex2lyx: Add a newline at the end of comment if not at the end of a paragraph.
When importing TeX code like
  %comment
  TEXT
the LyX document currently becomes
  [ERT %comment] TEXT
so that TEXT is now part of the comment.

Now output_comment adds a trailing newline if the token after the
comment is not a newline. Note that the newline that marks the end of
the comment has already been parsed at this point.

tex2lyx tests have been checked manually and updated.

Fixes ticket #9551.
2015-11-23 14:02:06 +01:00
Juergen Spitzmueller
45597f967c Disable Apply button in InsetParams dialogs if there is no inset to apply to.
Fixes: #9386
2015-11-20 10:57:05 +01:00
Jean-Marc Lasgouttes
147abaf234 Disable LFUN_LAYOUT when layout cannot be found
Fixes bug #8077
2015-11-17 08:53:42 +01:00
Uwe Stöhr
5c85869304 InsetMathNest.cpp: add \sideset to the autocomplete list 2015-11-17 01:06:38 +01:00
Scott Kostyshak
7dc3394139 Ammend 400db01c 2015-11-13 20:44:55 -05:00
Scott Kostyshak
400db01c2a Revert "Now math previews are correctly updated when replacing math contents inside"
This commit reverts 73ad885a and 29948eec.

Updating all previews is expensive. See #7242 for details.
2015-11-13 20:06:59 -05:00
Richard Heck
7a9b3a57aa The cite engine info is needed by makeDocumentClass().
Fixes both #9797 and #9848.

(cherry picked from commit ba99ea5b88)
2015-11-06 16:01:22 -05:00
Jean-Marc Lasgouttes
ae537a5d99 Set current font correctly after inset-select-all
Since we modify directly the cursor, it is wise to make sure that the current font is updated.

Fixes bug #9719.
2015-11-06 11:12:27 +01:00
Jean-Marc Lasgouttes
fc6b7ede9c Disable setting vertical lines when using a formal table
The code in InsetTabular disables the toolbar icons and menu entries related to vertical lines.

The code in GuiTabular disables vertical lines in the Settings dialog.
Note that there was a bug in
GuiSetBorders::set(Left|Right|Top|Bottom)Enabled, where the borders
did not get drawn correctly.

Fixes bug #9816
2015-11-06 11:05:21 +01:00
Jean-Marc Lasgouttes
1f177fed77 Allow quotes in PDF text properties
PDF properties (Author, Title...) need to be quoted properly when writing (normal operation and tex2lyx). Also, reading them requires to use Lexer::getString() directly, because >> uses next(), which does not handle escapes.

Fixes bug #9830.
2015-11-06 10:59:02 +01:00
Stephan Witt
164168cf2e Avoid the use of a static NSAutoreleasePool.
This seems to cause crashes on exit from time to time.
(cherry picked from commit 989c72530e)
2015-10-27 22:57:16 +01:00
Enrico Forestieri
bc79c9a27b Fix #9490: SIGSEGV involving LyX macros --- A reproducible MWE (part II) 2015-10-05 22:43:20 +02:00
Guillaume Munch
4b62267814 Fix bugs #6078 and #9364
Remove unwanted clearSelection()s in MathData::updateMacros(). These calls broke
text selection with keyboard and mouse, search-and-replace, restoring selection
after Undo, etc. in a document with math macros since 1.6.0. (Regression at
6aa54673 and 12314897)

I do not know the purpose of these calls, but the selection code has been worked
on since, and I cannot produce undesired behaviour after removing
them.

(cherry-picked from 89342f2946

Conflicts:
	src/mathed/MathData.cpp
)
2015-10-05 04:13:21 +01:00
Guillaume Munch
b056358362 Increase TOC_ENTRY_LENGTH (#9579) 2015-10-02 19:48:59 +01:00
Georg Baum
12ab5dd810 Work around a gcc5 bug
The old code produced crashes with gcc5 caused by calling the copy
constructor (see https://bugzilla.redhat.com/show_bug.cgi?id=1260976).
This has been filed as gcc bug: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67557
It is currently being marked as invalid (they claim the code is not valid and
produces undefined behaviour), but I don't think that this is correct.
Fortunately i does not matter for us whether the old code was valid or not,
since the new version is easier to understand and works with all compilers.
2015-09-15 21:28:42 +02:00
Guillaume Munch
1348c62d41 Fix bug #9754
Don't delay the update of the TOC panel on switching documents
2015-09-14 00:58:14 +01:00
Guillaume Munch
d186d708ea Fix bug #1996
\overrightarrow and related macros have a standard behaviour with respect to
sub/superscripts.
2015-09-14 00:55:35 +01:00
Juergen Spitzmueller
c78352af07 Fix parsing of class and category declaration line in layout files
* Omit commented-out lines
* Properly escape backslash
* Do not allow non-space chars after delaration
* Allow blanks before # comment character

Fixes: #9746
2015-09-03 09:49:20 +02:00
Scott Kostyshak
039f25e657 Set font in BufferView::setCursor (#9500)
This solves a few bugs related to the font not being set correctly.
For example, when putting a selection somewhere with
putSelectionAt(), the font was not reset so that before this commit
if the cursor was in an ERT, strange things could happen.
putSelectionAt() is notably used when highlighting the location
corresponding with a LaTeX error (GuiErrorList), when using find,
and when using the spellcheck. I could reproduce the bug using all
three of these.

Bug #9500 is an example of the type of bugs that this commit fixes.

(cherry picked from commit f8774a446b)
2015-08-26 17:16:23 -04:00
Jean-Marc Lasgouttes
1c8033f0c0 Reset properly the cursor font when leaving an inset to the left
There was a missing setCursorFont there.

Fixes bug #6032.
2015-08-24 10:40:21 +02:00
Jean-Marc Lasgouttes
56c4bf6c74 Properly notify insets after BufferView::doDispatch
Currently, insets are notified that the cursor entered or leaved them
in Cursor::dispatch. This is not the case for lfuns which are handled
in BufferView.

Adding the proper code allows to fix many bugs where previews are not
updated correctly.

Fixes bug #6173.
2015-08-24 10:28:09 +02:00
Jean-Marc Lasgouttes
b18fff0caa When the document language is changed, update cursor language too
Actually, the change is done only if the cursor language was the
document language already.

This fixes an trivial but annoying problem: create a new file (in
English), change language to your favourite language, then start to
write. Before this fix, the words come out in English, which does not
make sense.

Fixes bug #9586.
2015-08-24 10:16:37 +02:00
Guillaume Munch
1d0d10eaa7 Add \ensuremath to the list of math completions 2015-08-23 11:56:04 +02:00