Add back fillRect(), improve key state polling