[core/theme] Fix detection of "best matching theme"

Previous code accepted the "first" hit in a theme - particularly, if a
module is called "A" and a *different* module "B" uses "A" as state, a
widget of module B with state A would be themed as *module* A, wrongly.

Essentially, made sure that the last (most specific) themeing "wins".

fixes #647
This commit is contained in:
tobi-wan-kenobi 2020-06-04 20:56:31 +02:00
parent 747e67e1be
commit cb9a60668a
2 changed files with 28 additions and 2 deletions

View file

@ -35,8 +35,7 @@ def merge_replace(value, new_value, key):
if not isinstance(value, dict):
return new_value
if isinstance(new_value, dict):
util.algorithm.merge(value, new_value)
return value
return util.algorithm.merge(new_value, value)
# right now, merging needs explicit pango support :(
if "pango" in value:
value["pango"]["full_text"] = new_value