The drawing of the arrow will require that we repaint the background of our cell in, as well as its contents, each time we draw an arrow. This is evident when we move the cursor around in the cell and draw arrows in more than one direction, one after the other. Here's a version of code that solves much of the arrow drawing.
When we move the cursor around in the game board, over the mirror cells, we see different arrows.
This looks pretty good but it's obvious that we also need code to delete the arrow when we leave the cell. Actually, we should clean up when we leave the inside region. After all, we should only see arrows in the cell where our cursor presently is, and only then if it's a mirror cell and we are in one of the push regions. We'll want to take that cell background blanking and re-rendering code and extract it to its own method. We can then call it when we leave the cell.
We call this method from here...