Support clients with multiple matches on multiple screens.

Honestly, I don't really like this commit, but I do agree that Tyrannical
cannot just ignore bugs to keep the code simple forever. I tried this code
for 1 week and it doesn't seem to cause regressions, so I commit it. Please
report bugs on github if you experience degraded functionalities.