Laughter belongs in the happy thread.
Fandir, what I would do in your situation is constantly bag the guy in public. I have a pretty harsh tongue when I am in the right headspace, and can be downright brutal. Stand your ground, be an absolute bastard to him, and belittle him always. He will get the message.
And ensure your GF is on board, and if he ever tries anything again, it is HER job to slap him, knee the balls, etc. If you start doing violence, that never ends well, whereas if she does, law will generally always side with her.