From: Juergen Spitzmueller Date: Sat, 5 Oct 2024 12:15:19 +0000 (+0200) Subject: Adhere to semantic background color with default branches X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=1f7e8d3ffeb399ec4c02285f024d51b3a695f4c7;p=lyx.git Adhere to semantic background color with default branches This fixes color mismatched when "use system colors" is checked See https://marc.info/?l=lyx-users&m=172797086718347 --- diff --git a/src/BranchList.cpp b/src/BranchList.cpp index 37e746293d..d9409c80f1 100644 --- a/src/BranchList.cpp +++ b/src/BranchList.cpp @@ -114,12 +114,14 @@ void Branch::setColors(string const & lmcol, string const & dmcol) string lmcolor = lmcolor_; string dmcolor = dmcolor_; if (lmcolor == "none") - lmcolor = lcolor.getX11HexName(Color_background); - else if (lmcolor.size() != 7 || lmcolor[0] != '#') + lmcolor = "background"; + // if we have background color, keep semantic value, as system colors might vary + else if (lmcolor != "background" && (lmcolor.size() != 7 || lmcolor[0] != '#')) lmcolor = lcolor.getX11HexName(lcolor.getFromLyXName(lmcolor)); if (dmcolor == "none") - dmcolor = lcolor.getX11HexName(Color_background, true); - else if (dmcolor.size() != 7 || dmcolor[0] != '#') + dmcolor = "background"; + // if we have background color, keep semantic value, as system colors might vary + else if (dmcolor != "background" && (dmcolor.size() != 7 || dmcolor[0] != '#')) dmcolor = lcolor.getX11HexName(lcolor.getFromLyXName(dmcolor), true); // FIXME UNICODE diff --git a/src/insets/InsetBranch.cpp b/src/insets/InsetBranch.cpp index 16ac8f9237..1eb1f265d5 100644 --- a/src/insets/InsetBranch.cpp +++ b/src/insets/InsetBranch.cpp @@ -154,6 +154,10 @@ ColorCode InsetBranch::backgroundColor(PainterInfo const & pi) const // FIXME UNICODE string const branchcol = "branch" + branch_id + to_utf8(params_.branch); ColorCode c = lcolor.getFromLyXName(branchcol); + // if we have background color, set to semantic value, as system colors + // might vary + if (lcolor.getX11HexName(c, (theApp() && theApp()->isInDarkMode())) == "background") + c = Color_background; if (c == Color_none) c = Color_error; return c;