I don't really like the magic -2 here.  How about changing set_current_row to take an optional "bool is_stopping", default it to false, and pass true just below here.  Then you can get rid of is_stopping_next_.