I have found it! Silly me. I have placed view.invalidate at the end of draw method π³
def draw(view) if( @ip1.valid? ) if( @ip1.display? ) @ip1.draw(view) @drawn = true end end if( @ip2.valid? ) @ip2.draw(view) if( @ip2.display?) self.draw_geometry(@ip1.position, @ip2.position, view) view.invalidate #WRONG! @drawn = true end endEach time UI.messagebox was invoked SU called draw method which erased MB from the view.
Thanks
Tomasz