diff --git a/src/gui/interact/ui-coord-resolver.cpp b/src/gui/interact/ui-coord-resolver.cpp index 46af4cd19..111852ce5 100644 --- a/src/gui/interact/ui-coord-resolver.cpp +++ b/src/gui/interact/ui-coord-resolver.cpp @@ -122,15 +122,16 @@ namespace interact { size_t depth = iter.depth(); // we are at that depth in target tree if (depth >= coordDepth) // search pattern exhausted return false; - Literal elm = uic_[depth]; // pick search pattern component at that depth - if (elm != *iter and // if no direct match - elm != Symbol::ANY) // and not a wildcard in the pattern - return false; // it's no solution; backtracking to next alternative - - coverage.setAt (depth, *iter); // record match rsp. interpolate wildcard into output - iter.expandChildren(); // next iteration will match one level down into the tree - return elm != Symbol::ANY; // wildcard match itself does not count as solution - }) // ...yet we'll continue matching with children + Literal patt = uic_[depth]; // pick search pattern component at that depth + Literal curr = *iter; // iterator points at current tree position (ID) + if (patt == curr or // if either direct match + patt == Symbol::ANY) // or wildcard match + { + coverage.setAt (depth,curr); // record match rsp. interpolate wildcard into output + iter.expandChildren(); // next iteration will match one level down into the tree + } + return patt == curr; // only direct match counts as (partial) solution + }) .filter ([&](auto& iter) { if (iter.depth()+1 <= maxDepth) // filter for maximum solution length diff --git a/wiki/thinkPad.ichthyo.mm b/wiki/thinkPad.ichthyo.mm index 4491830a4..4ebd2373b 100644 --- a/wiki/thinkPad.ichthyo.mm +++ b/wiki/thinkPad.ichthyo.mm @@ -8467,7 +8467,10 @@ - + + + + @@ -8555,8 +8558,8 @@ - - + + @@ -8565,11 +8568,20 @@ - - - - - + + + + + + + + + + + + + + @@ -8650,12 +8662,12 @@ - - - - + + + + - + @@ -8670,7 +8682,7 @@ - +