I don't support violence against protestors, no exceptions. I do think police should be on hand to order them to leave or be arrested for disturbing the peace.
People have a right not to be subjected to someone disturbing an event they chose to attend, even one scheduled on public property. Protestors should be granted equal opportunities to schedule protests on the site, just not concurrently.
Free speech is between individuals and the government, not between citizens. Public property is owned by the public and government should allow access to that property on a fair and equitable basis in a manner that respects the privacy of the various groups wanting to use the taxpayer funded space.
When you disrupt a gathering, you violate people's privacy... just like a man entering a public woman's bathroom and you might be able to make an argument a man should have the right to access it... under specific conditions and circumstances, but not generally.
So, while every person should have access to the public property to protest, that access should provide not require they be given concurrent access. People incur expenses to got to political rallies and disturbing those rallies "steals" from them. Cities benefit from the money taxpayers spend attending these events and attendees have a right to enjoy the event they came to attend without disturbance.
I know the courts have been "generous" allowing protestors concurrent access to public spaces, I simply don't agree that is fair or right. Free speech is a relatively broad right that I embrace, and Free Speech has limits (though I don't think a state court has the authority to determine what those limits should be). But one limit the Federal Courts should impose is the use of free speech to intentionally disturb someone else's free speech and I guess the corollary to that is free speech should not confer the right to prevent people from hearing the speech the came to listen to.