When document settings are modified, a command
inset-forall Branch inset-toggle asign
is run to open as needed all branches. At the end of the said loop,
the cursor is reset to where it was. However, the cur_after undo
element member is not set because it already had a value.
To make this work as expected, it is necessary in LFUN_INSET_FORALL to
reset the cursor before ending the undo group and to insert a dummy
recordUndo call.
Fix horizontal scrolling in full-width collapsable insets
While a one paragraph large collapsable inset (containing for example a tabular) could be very wide and trigger horizontal scrolling, the code that makes collapsable insets wide when they contain several paragraphs would actually make them narrower in this case.
Typical example is a wide tabular and a caption in a table float, where horizontal scrolling would not trigger.
(cherry picked from commit 8c7ace4b on 2.3.0-staging)
Stephan Witt [Sat, 16 Apr 2016 20:30:33 +0000 (22:30 +0200)]
Handle activateWindow in LFUN_BUFFER_SWITCH like in saveBufferIfNeeded() and doShowDialog() methods.
This is a requirement on Mac to get the current buffer view topmost after buffer switch.
This is done by implementing the clickable method. It is not possible yet to have the usual left and down arrows, because Qt does not implement them as far as I can see.
Factor the code that triggers row/column selection and fix the logic. Now it is possible to select also at the right of the tabular inset.
When several bufferviews exist for the same inset, the data that depends on the view width have to be BufferView-dependent. While this is the case for several mutable members of InsetCollapsable, some were missing.
This commit makes button_dim_ (renamed from button_dim) and openinlined_ bv-dependent.
Get rid of the hitButton function.
Remove the bv-independent geometry() method and implement editable() explicitely instead.
Guillaume Munch [Mon, 14 Dec 2015 01:54:27 +0000 (01:54 +0000)]
Sanitize InsetMathHull and add a check for mutability in LFUN_MATH_MUTATE
Remove in particular all comparisons < and >= involving HullType.
Add a guard to make sure that mutate() only operates on types it has been
designed for. Then I figured I could use this new knowledge to give feedback
when math-mutate is not implemented via getStatus(). (To test this, insert a
regexp in Advanced Search & Replace and try to change it into a standard
equation via the contextual menu.)
Guillaume Munch [Sun, 13 Dec 2015 03:32:32 +0000 (03:32 +0000)]
Display the correct horizontal alignment in AMS environments
A longstanding problem... (related: #1861)
The columns in AMS math environments have a fixed alignment (colAlign() in
InsetMathGrid.cpp). We set this alignment for display (Georg's
displayColAlign()) in InsetMathHull and InsetMathSplit. This is done according
to tests and documentation for the various environments.
There is also some mechanical code factoring via colAlign().
Finally, I disable setting the horizontal alignment in InsetMathSplit, which has
no impact on the LaTeX output, and has no longer any impact on the screen. (As
for vertical alignment I discovered that it was in fact customisable for
\aligned & friends! I hope that the more faithful interface will let other
users discover that too.)
Guillaume Munch [Tue, 1 Mar 2016 13:39:43 +0000 (13:39 +0000)]
Do not omit the starting space when copying (#9995)
The offending code appears to have been introduced a long time ago. My
understanding is that it is no longer relevant. Notably, it only appears on copy
and not on cut, which tells us that: 1) it should be safe to remove it, 2) we
should remove it for consistency.
Georg Baum [Sat, 4 Jun 2016 17:22:36 +0000 (19:22 +0200)]
Force native line endings for .po files
As discussed on the list some time ago. cmake produces .po files already in
native line endings. Only autotools on mingw might produce wrong line endings
now, but I am pretty sure that nobody updates .po files using autotools on mingw.
Georg Baum [Sat, 4 Jun 2016 17:21:06 +0000 (19:21 +0200)]
Get rid of pseudo diffs when remerging strings
cmake sorts the input files for lyx_pot.py internally, but autotools use a
shell pattern like *.ui on the command line, so the order may be different
on different machines. It is more robust not to require any sorting from the
caller, so lyx_pot.py sorts now internally.
Fix horizontal scrolling in full-width collapsable insets
While a one paragraph large collapsable inset (containing for example a tabular) could be very wide and trigger horizontal scrolling, the code that makes collapsable insets wide when they contain several paragraphs would actually make them narrower in this case.
Typical example is a wide tabular and a caption in a table float, where horizontal scrolling would not trigger.
Uwe Stöhr [Thu, 2 Jun 2016 23:27:48 +0000 (01:27 +0200)]
Tutorial.lyx: don't use true small caps
this would require another font package with several MB size for only one single word -> not worth it for the Tutorial. The other language versions of the Tutorial do already not use true small caps.
It is wrong to assume that direction is left-to-right when no indication exist.
Add a new enum with values LtR, RtL and Auto to be used as argument of
the private text() methods. When direction is Auto, let Qt decide how
the string shall be layed out.
This is reimplementation of 51ee267c. A direct cherry-pick was not possible.
Stephan Witt [Sat, 16 Apr 2016 20:30:33 +0000 (22:30 +0200)]
Handle activateWindow in LFUN_BUFFER_SWITCH like in saveBufferIfNeeded() and doShowDialog() methods.
This is a requirement on Mac to get the current buffer view topmost after buffer switch.
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.
Scott Kostyshak [Mon, 23 May 2016 00:39:46 +0000 (20:39 -0400)]
Fix using system theme icons with Qt 5 (#10052)
With Qt 5, our code did not correctly detect when icons were
available and thus tried to use nonexistent icons.
QIcon::hasThemeIcon(theme_icon) returns true when theme_icon is
empty. We now rely on the behavior that QIcon::isNull() returns true
if the icon is empty.
Stephan Witt [Sat, 16 Apr 2016 20:30:33 +0000 (22:30 +0200)]
Handle activateWindow in LFUN_BUFFER_SWITCH like in saveBufferIfNeeded() and doShowDialog() methods.
This is a requirement on Mac to get the current buffer view topmost after buffer switch.
Georg Baum [Sat, 21 May 2016 08:12:57 +0000 (10:12 +0200)]
Fix python release notes
The old text was incorrect and came from the 2.0 release. LyX works fine if
the default python interpreter is python 3, as long as python 2 is available
as well.
Building LyX does also work with python 3, but since I did not check all
special build steps with both cmake and autotools, I kept a note about
possible problems.
This is used when scaling graphics previews. It is also used on a rare occasion
to scale instant previews when the user's configuration mixes low-dpi and
high-dpi monitors (#10114).
Uwe Stöhr [Wed, 18 May 2016 23:46:09 +0000 (01:46 +0200)]
Tutorial.lyx: get rid of unnecessary preamble code
The aim of the tutorial is to explain how to use LyX and not special LaTeX issues with \frontmatter, non-TeX fonts etc. Therefore the preamble should kept clean.
Guillaume Munch [Mon, 16 May 2016 17:10:13 +0000 (18:10 +0100)]
Allow inset-forall to match separators (#10090)
With this change, it becomes possible to run the following commands:
inset-forall Separator:latexpar char-delete-forward
inset-forall Separator:parbreak inset-modify separator plain
The first one deletes all latexpar separators. The second one turns parbreak
separators into plain separators. This is safe, flexible, and avoids adding a
new LFUN.
Georg Baum [Tue, 10 May 2016 05:18:48 +0000 (07:18 +0200)]
Ensure that TeXFiles.py is run by python2
We ensure that configure.py is called by python2, regardless whether 'python'
is python 2 or 3. Therefore we can simply call TeXFiles.py with the currently
running interpreter. This fixes configuration on systems where 'python' is
python 3.