There were some private methods in `PaintOperation` that were only called in `PaintOperation::on_stroke_done`. These don't need to be private methods and can just be static functions. There was also some code that changed the selection in the function that was supposed to only trim the end points, so that functionality is moved to it's own function instead.