[LyX/master] ctests: uninvert couple of suspended tests

2023-09-30 Thread Scott Kostyshak
commit bb55c3429ff194a24836a50a5c94ea7978bc4605
Author: Scott Kostyshak 
Date:   Sat Sep 30 20:43:10 2023 -0400

ctests: uninvert couple of suspended tests

Due to recent changes, 'xcolor' is now loaded in the corresponding
document export, which somehow fixes the compilation error that was
occurring.
---
 development/autotests/invertedTests |1 -
 1 files changed, 0 insertions(+), 1 deletions(-)

diff --git a/development/autotests/invertedTests 
b/development/autotests/invertedTests
index 25f3643..8bcf370 100644
--- a/development/autotests/invertedTests
+++ b/development/autotests/invertedTests
@@ -55,7 +55,6 @@ export/export/lyx2lyx/lyx_2_3_test_lyx(16|20|21|22)
 export/export/lyx2lyx/lyx_2_3_test2_lyx(16|20)
 
 # nonstandard tests failing for unknown reason:
-export/templates/Obsolete/ACM_SIGGGRAPH.*_pdf5_(texF|systemF)
 export/templates/Articles/R_Journal_(dvi3|pdf[45])_systemF
 #export/templates/Articles/Kluwer_.*_systemF
 
-- 
lyx-cvs mailing list
lyx-cvs@lists.lyx.org
http://lists.lyx.org/mailman/listinfo/lyx-cvs


[LyX/master] Amend 087f6bce

2023-09-30 Thread Scott Kostyshak
commit a6882a1db0152af270bcba08215424793946d99a
Author: Scott Kostyshak 
Date:   Sat Sep 30 20:21:22 2023 -0400

Amend 087f6bce

Explanation from Udi:

  There is a missing validation for the requirement of xcolor in
  InsetBox::validate, the case we use Boxed with non-default color.

Patch from Udi.
---
 src/insets/InsetBox.cpp |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/src/insets/InsetBox.cpp b/src/insets/InsetBox.cpp
index 36507cf..81506be 100644
--- a/src/insets/InsetBox.cpp
+++ b/src/insets/InsetBox.cpp
@@ -810,7 +810,7 @@ void InsetBox::validate(LaTeXFeatures & features) const
break;
case Boxed:
features.require("calc");
-   if (getFrameColor() != "black" || getBackgroundColor() != 
"white")
+   if (getFrameColor() != "default" || getBackgroundColor() != 
"white")
features.require("xcolor");
break;
case ovalbox:
-- 
lyx-cvs mailing list
lyx-cvs@lists.lyx.org
http://lists.lyx.org/mailman/listinfo/lyx-cvs


[LyX/master] Amend 04bfbc0f

2023-09-30 Thread Scott Kostyshak
commit 10403b7959b5d8c4c931943708eb8832418612f8
Author: Scott Kostyshak 
Date:   Sat Sep 30 20:20:03 2023 -0400

Amend 04bfbc0f

Patch from Udi.
---
 src/Encoding.cpp |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/src/Encoding.cpp b/src/Encoding.cpp
index dc84192..dab24b7 100644
--- a/src/Encoding.cpp
+++ b/src/Encoding.cpp
@@ -204,7 +204,7 @@ bool Encoding::encodable(char_type c) const
return true;
// platex does not load inputenc: force conversion of supported 
characters
if (package_ == Encoding::japanese
-   && ((0xb7 <= c && c <= 0x058f) // Latin-1 Supplement ... Armenian
+   && ((0xb7 <= c && c <= 0x05ff) // Latin-1 Supplement ... Hebrew
|| (0x1d00 <= c && c <= 0x218f) // Phonetic Extensions 
... Number Forms
|| (0x2193 <= c && c <= 0x2aff) // Arrows ... 
Supplemental Mathematical Operators
|| (0xfb00 <= c && c <= 0xfb4f) // Alphabetic 
Presentation Forms
-- 
lyx-cvs mailing list
lyx-cvs@lists.lyx.org
http://lists.lyx.org/mailman/listinfo/lyx-cvs


[LyX/master] Uodate fr.po

2023-09-30 Thread jpc
commit 2c9178ecfd04340b4678cf832d2a6423ebd46f83
Author: jpc 
Date:   Sat Sep 30 18:20:47 2023 +0200

Uodate fr.po

 po/fr.gmo |  Bin 654974 -> 654951 bytes
 po/fr.po  | 1336 +++--
 2 files changed, 672 insertions(+), 664 deletions(-)
-- 
lyx-cvs mailing list
lyx-cvs@lists.lyx.org
http://lists.lyx.org/mailman/listinfo/lyx-cvs


[LyX/master] proper unicode support for hebrew in 8bit engines

2023-09-30 Thread Juergen Spitzmueller
commit 48eda746dabecf100bd163b822ed9db68ab9eb3f
Author: Udi-Fogiel 
Date:   Wed Sep 27 14:45:43 2023 +0300

proper unicode support for hebrew in 8bit engines
---
 lib/languages  |9 -
 lib/unicodesymbols |  102 ++--
 src/Encoding.cpp   |2 +-
 3 files changed, 52 insertions(+), 61 deletions(-)

diff --git a/lib/languages b/lib/languages
index a027a43..903bba9 100644
--- a/lib/languages
+++ b/lib/languages
@@ -859,15 +859,6 @@ Language hebrew
InternalEncoding true
# babel-hebrew expects the encoding for *other* languages last:
FontEncodingHE8,T1|LHE,T1
-   ## Use font encoding HE8 if the Culmus fonts are installed and
-   # work around to simple test for article-like classes in rlbabel.def.
-   PreBabelPreamble
- \IfFileExists{he8david.fd}{%
-   \providecommand{\HeblatexEncoding}{HE8}
-   \providecommand{\HeblatexEncodingFile}{he8enc}%
- }{}
- \providecommand{\l@chapter}{\relax}
-   EndPreBabelPreamble
DateFormats  "d  |d MMM |dd/MM/"
RTL  true
LangCode he_IL
diff --git a/lib/unicodesymbols b/lib/unicodesymbols
index 1b2a88d..66cbfc7 100644
--- a/lib/unicodesymbols
+++ b/lib/unicodesymbols
@@ -1113,62 +1113,62 @@
 # characters. However, LaTeX-Hebrew expects them as postfix characters, not
 # accent macros (cf. www.cs.tau.ac.il/~stoledo/Bib/Pubs/vowels.pdf).
 #0x0591 """" "" "" "" # HEBREW ACCENT ETNAHTA
-0x05b0 "\\sheva""" "force=cp1255;utf8;utf8-cjk;utf8x" "" "" # HEBREW 
POINT SHEVA
-0x05b1 "\\hatafsegol"   "" "force=cp1255;utf8;utf8-cjk;utf8x" "" "" # HEBREW 
POINT HATAF SEGOL
-0x05b2 "\\hatafpatah"   "" "force=cp1255;utf8;utf8-cjk;utf8x" "" "" # HEBREW 
POINT HATAF PATAH
-0x05b3 "\\hatafqamats"  "" "force=cp1255;utf8;utf8-cjk;utf8x" "" "" # HEBREW 
POINT HATAF QAMATS
-0x05b4 "\\hiriq""" "force=cp1255;utf8;utf8-cjk;utf8x" "" "" # HEBREW 
POINT HIRIQ
-0x05b5 "\\tsere""" "force=cp1255;utf8;utf8-cjk;utf8x" "" "" # HEBREW 
POINT TSERE
-0x05b6 "\\segol""" "force=cp1255;utf8;utf8-cjk;utf8x" "" "" # HEBREW 
POINT SEGOL
-0x05b7 "\\patah" "" "force=cp1255;utf8;utf8-cjk;utf8x" "" "" # HEBREW 
POINT PATAH
-0x05b8 "\\qamats""" "force=cp1255;utf8;utf8-cjk;utf8x" "" "" # HEBREW 
POINT QAMATS
-0x05b9 "\\holam" "" "force=cp1255;utf8;utf8-cjk;utf8x" "" "" # HEBREW 
POINT HOLAM
+0x05b0 "\\sheva""" "force=utf8x" "" "" # HEBREW POINT SHEVA
+0x05b1 "\\hatafsegol"   "" "force=utf8x" "" "" # HEBREW POINT HATAF SEGOL
+0x05b2 "\\hatafpatah"   "" "force=utf8x" "" "" # HEBREW POINT HATAF PATAH
+0x05b3 "\\hatafqamats"  "" "force=utf8x" "" "" # HEBREW POINT HATAF QAMATS
+0x05b4 "\\hiriq""" "force=utf8x" "" "" # HEBREW POINT HIRIQ
+0x05b5 "\\tsere""" "force=utf8x" "" "" # HEBREW POINT TSERE
+0x05b6 "\\segol""" "force=utf8x" "" "" # HEBREW POINT SEGOL
+0x05b7 "\\patah" "" "force=utf8x" "" "" # HEBREW POINT PATAH
+0x05b8 "\\qamats""" "force=utf8x" "" "" # HEBREW POINT QAMATS
+0x05b9 "\\holam" "" "force=utf8x" "" "" # HEBREW POINT HOLAM
 #0x05ba """" "" "" "" # HEBREW POINT HOLAM HASER FOR VAV
-0x05bb "\\qubuts""" "force=cp1255;utf8;utf8-cjk;utf8x" "" "" # HEBREW 
POINT QUBUTS
-0x05bc "\\dagesh""" "force=cp1255;utf8;utf8-cjk;utf8x" "" "" # HEBREW 
POINT DAGESH OR MAPIQ
-0x05bd "\\meteg" "" "force=cp1255;utf8;utf8-cjk;utf8x" "" "" # HEBREW 
POINT METEG
-0x05be "\\maqaf" "" "force=cp1255;utf8;utf8-cjk" "" ""  # 
HEBREW PUNCTUATION MAQAF
-0x05bf "\\rafe"  "" "force=cp1255;utf8;utf8-cjk;utf8x" "" "" # HEBREW 
POINT RAFE
-0x05c0 "\\paseq" "" "force=cp1255;utf8;utf8-cjk;utf8x" "" "" # HEBREW 
PUNCTUATION PASEQ
-0x05c1 "\\shindot"   "" "force=cp1255;utf8;utf8-cjk;utf8x" "" "" # HEBREW 
POINT SHIN DOT
-0x05c2 "\\sindot""" "force=cp1255;utf8;utf8-cjk;utf8x" "" "" # HEBREW 
POINT SIN DOT
-0x05c3 "\\sofpasuq"  "" "force=cp1255;utf8;utf8-cjk" "" ""  # 
HEBREW PUNCTUATION SOF PASUQ
+0x05bb "\\qubuts""" "force=utf8x" "" "" # HEBREW POINT QUBUTS
+0x05bc "\\dagesh""" "force=utf8x" "" "" # HEBREW POINT DAGESH OR MAPIQ
+0x05bd "\\meteg" "" "force=utf8x" "" "" # HEBREW POINT METEG
+0x05be "\\maqaf" "" "" "" ""# HEBREW PUNCTUATION MAQAF
+0x05bf "\\rafe"  "" "force=utf8x" "" "" # HEBREW POINT RAFE
+0x05c0 "\\paseq" "" "force=utf8x" "" "" # HEBREW PUNCTUATION PASEQ
+0x05c1 "\\shindot"   "" "force=utf8x" "" "" # HEBREW POINT SHIN DOT
+0x05c2 "\\sindot""" "force=utf8x" "" "" # HEBREW POINT SIN DOT
+0x05c3 "\\sofpasuq"  "" "" "" ""# HEBREW PUNCTUATION SOF PASUQ
 #0x05c4 """" "" "" "" # HEBREW MARK UPPER DOT
 #0x05c5 """" "" "" "" # HEBREW MARK LOWER DOT
 #0x05c6 """" "" "" "" # HEBREW PUNCTUATION N

[LyX/master] Limit RTL hack to classic engines (#12919)

2023-09-30 Thread Juergen Spitzmueller
commit 04bfbc0f7a1964790256117f146ba040054b34b2
Author: Juergen Spitzmueller 
Date:   Sat Sep 30 16:59:37 2023 +0200

Limit RTL hack to classic engines (#12919)

It breaks with LuaTeX, is definitely not needed with XeTeX, and it is
doubted whether it is needed at all (but this needs further testing).
---
 src/BufferParams.cpp |3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/src/BufferParams.cpp b/src/BufferParams.cpp
index 8a8422a..36ebb21 100644
--- a/src/BufferParams.cpp
+++ b/src/BufferParams.cpp
@@ -1593,7 +1593,8 @@ void BufferParams::validate(LaTeXFeatures & features) 
const
 {
features.require(documentClass().required());
 
-   if (columns > 1 && language->rightToLeft())
+   if (columns > 1 && language->rightToLeft()
+   && !features.runparams().isFullUnicode())
features.require("rtloutputdblcol");
 
if (output_changes) {
-- 
lyx-cvs mailing list
lyx-cvs@lists.lyx.org
http://lists.lyx.org/mailman/listinfo/lyx-cvs


[LyX/master] Style

2023-09-30 Thread Juergen Spitzmueller
commit 8b1f1c29ffa4f9b511fafb1195a3ad16993a2d31
Author: Juergen Spitzmueller 
Date:   Sat Sep 30 13:58:57 2023 +0200

Style
---
 src/insets/Inset.cpp |2 +-
 src/insets/Inset.h   |2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/insets/Inset.cpp b/src/insets/Inset.cpp
index 6e3bb67..6ffb407 100644
--- a/src/insets/Inset.cpp
+++ b/src/insets/Inset.cpp
@@ -673,7 +673,7 @@ docstring Inset::completionPrefix(Cursor const &) const
 }
 
 
-Language const * Inset::getLocalOrDefaultLang(const OutputParams & rp) const
+Language const * Inset::getLocalOrDefaultLang(OutputParams const & rp) const
 {
return (rp.local_font != nullptr)
? rp.local_font->language()
diff --git a/src/insets/Inset.h b/src/insets/Inset.h
index 04fffe9..d2b4076 100644
--- a/src/insets/Inset.h
+++ b/src/insets/Inset.h
@@ -621,7 +621,7 @@ public:
virtual bool confirmDeletion() const { return false; }
/// Return the local_font's language or the buffer's default language
/// if local_font is null
-   Language const * getLocalOrDefaultLang(const OutputParams &) const;
+   Language const * getLocalOrDefaultLang(OutputParams const &) const;
 
 protected:
/// Constructors
-- 
lyx-cvs mailing list
lyx-cvs@lists.lyx.org
http://lists.lyx.org/mailman/listinfo/lyx-cvs


[LyX/master] fix nested uwave

2023-09-30 Thread Juergen Spitzmueller
commit 7ccdc6edf548c8eda345c70a4212b70e6003ad0c
Author: Udi Fogiel 
Date:   Wed Sep 27 01:32:55 2023 +0300

fix nested uwave
---
 src/Font.cpp |4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/Font.cpp b/src/Font.cpp
index 8c73e91..7e0798d 100644
--- a/src/Font.cpp
+++ b/src/Font.cpp
@@ -505,8 +505,8 @@ int Font::latexWriteStartChanges(otexstream & os, 
BufferParams const & bparams,
if (runparams.inulemcmd) {
// needed with nested uwave in xout
// see https://tex.stackexchange.com/a/263042
-   os << "\\ULdepth=1000pt";
-   count += 15;
+   os << "\\ULdepth=\\maxdimen";
+   count += 18;
}
if (needs_cprotection) {
os << "\\cprotect";
-- 
lyx-cvs mailing list
lyx-cvs@lists.lyx.org
http://lists.lyx.org/mailman/listinfo/lyx-cvs


[LyX/master] Fix escape string (reported by José)

2023-09-30 Thread Juergen Spitzmueller
commit 9b8183b877f2acd767879d934bc64817f1b506ed
Author: Juergen Spitzmueller 
Date:   Sat Sep 30 13:07:00 2023 +0200

Fix escape string (reported by José)
---
 lib/lyx2lyx/lyx_2_4.py |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/lib/lyx2lyx/lyx_2_4.py b/lib/lyx2lyx/lyx_2_4.py
index ca81759..41c1aa4 100644
--- a/lib/lyx2lyx/lyx_2_4.py
+++ b/lib/lyx2lyx/lyx_2_4.py
@@ -4711,7 +4711,7 @@ def revert_hyper_other(document):
 if target[:4] == "run:":
 del document.body[k]
 else:
-cmd = "\href{" + target + "}{" + name + "}"
+cmd = r"\href{" + target + "}{" + name + "}"
 ecmd = put_cmd_in_ert(cmd)
 document.body[i:j+1] = ecmd
 i += 1
-- 
lyx-cvs mailing list
lyx-cvs@lists.lyx.org
http://lists.lyx.org/mailman/listinfo/lyx-cvs


[LyX/master] Prevent access to null local_font

2023-09-30 Thread Juergen Spitzmueller
commit fc9684a130300e5655aedda34eefd8ddf0db0f92
Author: Juergen Spitzmueller 
Date:   Sat Sep 30 13:01:20 2023 +0200

Prevent access to null local_font
---
 src/insets/Inset.cpp|8 
 src/insets/Inset.h  |4 
 src/insets/InsetBox.cpp |3 ++-
 src/insets/InsetFloatList.cpp   |6 +++---
 src/insets/InsetIndex.cpp   |2 +-
 src/insets/InsetListings.cpp|7 +++
 src/insets/InsetNomencl.cpp |4 ++--
 src/insets/InsetQuotes.cpp  |6 +++---
 src/insets/InsetRef.cpp |2 +-
 src/insets/InsetSpace.cpp   |3 +--
 src/insets/InsetSpecialChar.cpp |6 +++---
 src/insets/InsetTabular.cpp |6 --
 12 files changed, 35 insertions(+), 22 deletions(-)

diff --git a/src/insets/Inset.cpp b/src/insets/Inset.cpp
index 6e89950..6e3bb67 100644
--- a/src/insets/Inset.cpp
+++ b/src/insets/Inset.cpp
@@ -672,4 +672,12 @@ docstring Inset::completionPrefix(Cursor const &) const
return docstring();
 }
 
+
+Language const * Inset::getLocalOrDefaultLang(const OutputParams & rp) const
+{
+   return (rp.local_font != nullptr)
+   ? rp.local_font->language()
+   : buffer().params().language;
+}
+
 } // namespace lyx
diff --git a/src/insets/Inset.h b/src/insets/Inset.h
index 1b7adb5..04fffe9 100644
--- a/src/insets/Inset.h
+++ b/src/insets/Inset.h
@@ -54,6 +54,7 @@ class InsetList;
 class InsetMath;
 class InsetTabular;
 class InsetText;
+class Language;
 class LaTeXFeatures;
 class Lexer;
 class MathAtom;
@@ -618,6 +619,9 @@ public:
/// Determine the action of backspace and delete: do we select instead 
of
/// deleting if not already selected?
virtual bool confirmDeletion() const { return false; }
+   /// Return the local_font's language or the buffer's default language
+   /// if local_font is null
+   Language const * getLocalOrDefaultLang(const OutputParams &) const;
 
 protected:
/// Constructors
diff --git a/src/insets/InsetBox.cpp b/src/insets/InsetBox.cpp
index 9ff8cea..36507cf 100644
--- a/src/insets/InsetBox.cpp
+++ b/src/insets/InsetBox.cpp
@@ -355,7 +355,8 @@ void InsetBox::latex(otexstream & os, OutputParams const & 
runparams) const
string maybeBeginL;
string maybeEndL;
bool needEndL = false;
-   if (!runparams.isFullUnicode() && 
runparams.local_font->isRightToLeft()) {
+   if (!runparams.isFullUnicode()
+   && runparams.local_font && runparams.local_font->isRightToLeft()) {
maybeBeginL = "\\beginL";
maybeEndL = "\\endL";
}
diff --git a/src/insets/InsetFloatList.cpp b/src/insets/InsetFloatList.cpp
index e711fee..3315d3b 100644
--- a/src/insets/InsetFloatList.cpp
+++ b/src/insets/InsetFloatList.cpp
@@ -195,11 +195,11 @@ docstring InsetFloatList::xhtml(XMLStream &, OutputParams 
const & op) const {
if (type == "table") {
toctype = "table";
toclabel = translateIfPossible(from_ascii("List of 
Tables"),
-  
op.local_font->language()->lang());
+  
getLocalOrDefaultLang(op)->lang());
} else if (type == "figure") {
toctype = "figure";
toclabel = translateIfPossible(from_ascii("List of 
Figures"),
-  
op.local_font->language()->lang());
+  
getLocalOrDefaultLang(op)->lang());
} else {
LYXERR0("Unknown Builtin Float!");
return docstring();
@@ -207,7 +207,7 @@ docstring InsetFloatList::xhtml(XMLStream &, OutputParams 
const & op) const {
} else {
toctype = to_utf8(getParam("type"));
toclabel = 
translateIfPossible(from_utf8(cit->second.listName()),
-  
op.local_font->language()->lang());
+  
getLocalOrDefaultLang(op)->lang());
}
 
shared_ptr toc = buffer().tocBackend().toc(toctype);
diff --git a/src/insets/InsetIndex.cpp b/src/insets/InsetIndex.cpp
index b20b553..67f932e 100644
--- a/src/insets/InsetIndex.cpp
+++ b/src/insets/InsetIndex.cpp
@@ -1911,7 +1911,7 @@ docstring InsetPrintIndex::xhtml(XMLStream &, 
OutputParams const & op) const
xs << xml::StartTag("div", tocattr);
xs << xml::CR();
xs << xml::StartTag(lay.htmltag(), lay.htmlGetAttrString());
-   xs << translateIfPossible(indexName, op.local_font->language()->lang());
+   xs << translateIfPossible(indexName, getLocalOrDefaultLang(op)->lang());
xs << xml::EndTag(lay.htmltag());
xs << xml::CR();
xs << xml::StartTag("ul", "class='main'");
diff --git a/src/insets/InsetListings.cpp b/src/insets/InsetListin

[LyX/master] Update tex2lyx tests after recent format change

2023-09-30 Thread Juergen Spitzmueller
commit 1d00389bf88fef4b395cb7f8ed2c1c354364b0e1
Author: Juergen Spitzmueller 
Date:   Sat Sep 30 09:59:36 2023 +0200

Update tex2lyx tests after recent format change
---
 src/tex2lyx/test/CJK.lyx.lyx   |2 +-
 src/tex2lyx/test/CJKutf8.lyx.lyx   |2 +-
 src/tex2lyx/test/DummyDocument.lyx.lyx |2 +-
 src/tex2lyx/test/Dummy~Document.lyx.lyx|2 +-
 src/tex2lyx/test/XeTeX-polyglossia.lyx.lyx |2 +-
 src/tex2lyx/test/algo2e.lyx.lyx|2 +-
 src/tex2lyx/test/beamer.lyx.lyx|2 +-
 .../test/box-color-size-space-align.lyx.lyx|2 +-
 src/tex2lyx/test/listpreamble.lyx.lyx  |2 +-
 src/tex2lyx/test/tabular-x-test.lyx.lyx|2 +-
 src/tex2lyx/test/test-insets-basic.lyx.lyx |2 +-
 src/tex2lyx/test/test-insets.lyx.lyx   |2 +-
 src/tex2lyx/test/test-memoir.lyx.lyx   |2 +-
 src/tex2lyx/test/test-minted.lyx.lyx   |2 +-
 src/tex2lyx/test/test-modules.lyx.lyx  |2 +-
 src/tex2lyx/test/test-refstyle-theorems.lyx.lyx|2 +-
 src/tex2lyx/test/test-scr.lyx.lyx  |2 +-
 src/tex2lyx/test/test-structure.lyx.lyx|2 +-
 src/tex2lyx/test/test.lyx.lyx  |2 +-
 src/tex2lyx/test/verbatim.lyx.lyx  |2 +-
 20 files changed, 20 insertions(+), 20 deletions(-)

diff --git a/src/tex2lyx/test/CJK.lyx.lyx b/src/tex2lyx/test/CJK.lyx.lyx
index 1d617c3..e021644 100644
--- a/src/tex2lyx/test/CJK.lyx.lyx
+++ b/src/tex2lyx/test/CJK.lyx.lyx
@@ -1,5 +1,5 @@
 #LyX file created by tex2lyx 2.4
-\lyxformat 619
+\lyxformat 620
 \begin_document
 \begin_header
 \save_transient_properties true
diff --git a/src/tex2lyx/test/CJKutf8.lyx.lyx b/src/tex2lyx/test/CJKutf8.lyx.lyx
index 8d9638c..ae9e67b 100644
--- a/src/tex2lyx/test/CJKutf8.lyx.lyx
+++ b/src/tex2lyx/test/CJKutf8.lyx.lyx
@@ -1,5 +1,5 @@
 #LyX file created by tex2lyx 2.4
-\lyxformat 619
+\lyxformat 620
 \begin_document
 \begin_header
 \save_transient_properties true
diff --git a/src/tex2lyx/test/DummyDocument.lyx.lyx 
b/src/tex2lyx/test/DummyDocument.lyx.lyx
index e590d6b..6b6ac9a 100644
--- a/src/tex2lyx/test/DummyDocument.lyx.lyx
+++ b/src/tex2lyx/test/DummyDocument.lyx.lyx
@@ -1,5 +1,5 @@
 #LyX file created by tex2lyx 2.4
-\lyxformat 619
+\lyxformat 620
 \begin_document
 \begin_header
 \save_transient_properties true
diff --git a/src/tex2lyx/test/Dummy~Document.lyx.lyx 
b/src/tex2lyx/test/Dummy~Document.lyx.lyx
index 7608c1c..0ead176 100644
--- a/src/tex2lyx/test/Dummy~Document.lyx.lyx
+++ b/src/tex2lyx/test/Dummy~Document.lyx.lyx
@@ -1,5 +1,5 @@
 #LyX file created by tex2lyx 2.4
-\lyxformat 619
+\lyxformat 620
 \begin_document
 \begin_header
 \save_transient_properties true
diff --git a/src/tex2lyx/test/XeTeX-polyglossia.lyx.lyx 
b/src/tex2lyx/test/XeTeX-polyglossia.lyx.lyx
index ff52dfe..8221db0 100644
--- a/src/tex2lyx/test/XeTeX-polyglossia.lyx.lyx
+++ b/src/tex2lyx/test/XeTeX-polyglossia.lyx.lyx
@@ -1,5 +1,5 @@
 #LyX file created by tex2lyx 2.4
-\lyxformat 619
+\lyxformat 620
 \begin_document
 \begin_header
 \save_transient_properties true
diff --git a/src/tex2lyx/test/algo2e.lyx.lyx b/src/tex2lyx/test/algo2e.lyx.lyx
index 09e4399..70a0e9b 100644
--- a/src/tex2lyx/test/algo2e.lyx.lyx
+++ b/src/tex2lyx/test/algo2e.lyx.lyx
@@ -1,5 +1,5 @@
 #LyX file created by tex2lyx 2.4
-\lyxformat 619
+\lyxformat 620
 \begin_document
 \begin_header
 \save_transient_properties true
diff --git a/src/tex2lyx/test/beamer.lyx.lyx b/src/tex2lyx/test/beamer.lyx.lyx
index 74df814..eb134de 100644
--- a/src/tex2lyx/test/beamer.lyx.lyx
+++ b/src/tex2lyx/test/beamer.lyx.lyx
@@ -1,5 +1,5 @@
 #LyX file created by tex2lyx 2.4
-\lyxformat 619
+\lyxformat 620
 \begin_document
 \begin_header
 \save_transient_properties true
diff --git a/src/tex2lyx/test/box-color-size-space-align.lyx.lyx 
b/src/tex2lyx/test/box-color-size-space-align.lyx.lyx
index 1a81fa7..d378d51 100644
--- a/src/tex2lyx/test/box-color-size-space-align.lyx.lyx
+++ b/src/tex2lyx/test/box-color-size-space-align.lyx.lyx
@@ -1,5 +1,5 @@
 #LyX file created by tex2lyx 2.4
-\lyxformat 619
+\lyxformat 620
 \begin_document
 \begin_header
 \save_transient_properties true
diff --git a/src/tex2lyx/test/listpreamble.lyx.lyx 
b/src/tex2lyx/test/listpreamble.lyx.lyx
index a685736..b4730be 100644
--- a/src/tex2lyx/test/listpreamble.lyx.lyx
+++ b/src/tex2lyx/test/listpreamble.lyx.lyx
@@ -1,5 +1,5 @@
 #LyX file created by tex2lyx 2.4
-\lyxformat 619
+\lyxformat 620
 \begin_document
 \begin_header
 \save_transient_properties true
diff --git a/src/tex2lyx/test/tabular-x-test.lyx.lyx 
b/src/tex2lyx/test/tabular-x-test.lyx.lyx
index 601ca28..2004807 100644
--- a/src/tex2lyx/test/tabular-x-test.lyx.lyx
+++ b/src/tex2lyx/test/tabular-x-test.lyx.lyx
@@ -1,5 +1,5 @@
 #LyX file created by tex2lyx 2.4
-\lyxformat 619
+\lyxformat 620
 \begin_document
 \begin_header
 \save

[LyX/master] Introduce default box frame color (#12921)

2023-09-30 Thread Juergen Spitzmueller
commit 087f6bce71dc6d164bccaa49461d17338e7d6c4e
Author: Juergen Spitzmueller 
Date:   Sat Sep 30 09:56:27 2023 +0200

Introduce default box frame color (#12921)

This better aligns with dark mode
---
 development/FORMAT  |4 
 lib/lyx2lyx/lyx_2_4.py  |   21 +++--
 src/frontends/qt/GuiBox.cpp |   38 --
 src/frontends/qt/GuiBox.h   |3 +--
 src/insets/InsetBox.cpp |   32 
 src/insets/InsetBox.h   |4 
 src/version.h   |4 ++--
 7 files changed, 62 insertions(+), 44 deletions(-)

diff --git a/development/FORMAT b/development/FORMAT
index 1711f88..2834dd5 100644
--- a/development/FORMAT
+++ b/development/FORMAT
@@ -7,6 +7,10 @@ changes happened in particular if possible. A good example 
would be
 
 ---
 
+2023-09-29 Jürgen Spitzmüller  
+   * Format incremented to 620: Add InsetBox "default" framecolor 
("foreground"
+ rather than "black" in GUI). This aligns better with dark mode.
+
 2023-09-06 Richard Kimberly Heck 
* Format incremented to 619: New document header \use_formatted_ref
  for workarea display purposes only.
diff --git a/lib/lyx2lyx/lyx_2_4.py b/lib/lyx2lyx/lyx_2_4.py
index 4cc5fe5..ca81759 100644
--- a/lib/lyx2lyx/lyx_2_4.py
+++ b/lib/lyx2lyx/lyx_2_4.py
@@ -5554,6 +5554,21 @@ def revert_formatted_refs(document):
 del document.header[i]
 
 
+def revert_box_fcolor(document):
+i = 0
+while True:
+i = find_token(document.body, '\\begin_inset Box Boxed', i+1)
+if i == -1:
+break
+j = find_end_of_inset(document.body, i)
+if j == -1:
+document.warning("Malformed LyX document: Can't find end of framed 
box inset at line %d" % i)
+continue
+k = find_token(document.body, 'framecolor "default"', i, j)
+if k != -1:
+document.body[k] = 'framecolor "black"'
+
+
 ##
 # Conversion hub
 #
@@ -5634,11 +5649,13 @@ convert = [
[616, [convert_empty_macro]],
[617, [convert_cov_options]],
[618, []],
-   [619, []]
+   [619, []],
+   [620, []]
   ]
 
 
-revert =  [[618, [revert_formatted_refs]],
+revert =  [[619, [revert_box_fcolor]],
+   [618, [revert_formatted_refs]],
[617, [revert_hequotes]],
[616, 
[revert_expreambles,revert_exarg2,revert_linggloss2,revert_cov_options]],
[615, [revert_empty_macro]],
diff --git a/src/frontends/qt/GuiBox.cpp b/src/frontends/qt/GuiBox.cpp
index bda71a6..c7c8dc9 100644
--- a/src/frontends/qt/GuiBox.cpp
+++ b/src/frontends/qt/GuiBox.cpp
@@ -133,6 +133,8 @@ GuiBox::GuiBox(QWidget * parent) : InsetParamsWidget(parent)
connect(shadowsizeED, SIGNAL(textChanged(QString)), this, 
SIGNAL(changed()));
connect(shadowsizeUnitsLC, SIGNAL(selectionChanged(lyx::Length::UNIT)),
this, SIGNAL(changed()));
+   connect(frameColorCO, SIGNAL(currentIndexChanged(int)),
+   this, SIGNAL(changed()));
connect(backgroundColorCO, SIGNAL(currentIndexChanged(int)),
this, SIGNAL(changed()));
 
@@ -159,15 +161,17 @@ GuiBox::GuiBox(QWidget * parent) : 
InsetParamsWidget(parent)
 }
 
 
-void GuiBox::fillComboColor(QComboBox * combo, bool const is_none)
+void GuiBox::fillComboColor(QComboBox * combo, bool const is_background)
 {
combo->clear();
QPixmap coloritem(32, 32);
QColor color;
-   // frameColorCO cannot be uncolored
-   if (is_none)
+   // condition on the two possible types
+   if (is_background)

combo->addItem(toqstr(translateIfPossible(lcolor.getGUIName(Color_none))),
   toqstr(lcolor.getLaTeXName(Color_none)));
+   else
+   combo->addItem(qt_("Default"), toqstr("default"));
QList::const_iterator cit = color_codes_.begin();
for (; cit != color_codes_.end(); ++cit) {
QString const latexname = toqstr(lcolor.getLaTeXName(*cit));
@@ -215,32 +219,6 @@ void GuiBox::on_typeCO_activated(int index)
widthCB->setChecked(itype != "none");
pagebreakCB->setChecked(false);
}
-   // assure that the frame color is black for frameless boxes to
-   // provide the color "none"
-   int const b = frameColorCO->findData("black");
-   if (frameless && frameColorCO->currentIndex() != b)
-   frameColorCO->setCurrentIndex(b);
-   changed();
-}
-
-
-void GuiBox::on_frameColorCO_currentIndexChanged(int index)
-{
-   // if there is a non-black frame color the background cannot be 
uncolored
-   // therefore remove the entry "none" in this case
-   int const n = backgroundColorCO->findData("none");
-   if (index != frameColorCO->findData("black")) {
-   if (n != -1) {
-   if (backgroundColorCO->curren