Tens of thousands of Brazilians took to the streets on Wednesday calling for a crackdown on corruption and better public services.
In Belo Horizonte 40,000 people gathered to demand better education and healthcare as Brazil's third-largest city hosted a Confederations Cup semi-final between Brazil and Uruguay - a warm-up for the 2014 World Cup.
Youths threw stones at police who used teargas to stop marchers just a mile from the stadium. A banner hung from a bridge read "FIFA go home".
More top news
The helicopter, which the royal was not in at the time, avoided a potentially deadly mid-air crash.
The shots on a bus sparked a major security scare as weekend tourists in some of the world's most famous casinos were told to bunker down.
The Ukip leader confirmed he had "no prior warning" of Douglas Carswell's resignation from the party as he hit out at the "staunch Tory".