Use preferred dir when placing a key next to an other

This commit is contained in:
Jules Aguillon 2024-06-09 14:03:02 +02:00
parent 773147ab9c
commit 944ed32a37

View File

@ -67,8 +67,14 @@ public final class KeyboardData
if (pos.next_to != null) if (pos.next_to != null)
{ {
KeyPos next_to_pos = getKeys().get(pos.next_to); KeyPos next_to_pos = getKeys().get(pos.next_to);
if (next_to_pos != null // Use preferred direction if some preferred pos match
&& add_key_to_pos(rows, kv, next_to_pos.with_dir(-1))) if (next_to_pos != null)
for (KeyPos p : pos.positions)
if ((p.row == -1 || p.row == next_to_pos.row)
&& (p.col == -1 || p.col == next_to_pos.col)
&& add_key_to_pos(rows, kv, next_to_pos.with_dir(p.dir)))
return true;
if (add_key_to_pos(rows, kv, next_to_pos.with_dir(-1)))
return true; return true;
} }
for (KeyPos p : pos.positions) for (KeyPos p : pos.positions)