When the definition bar shows the location of an 'if' there are two issues:
1) multiline if's are broken and only the last line before the { is shown (see sample)
2) when using spaces instead of tabs, the definition bar shows ALL spaces between the statement and the curly bracket. Thus the bracket is at an arbitrary position.
sample:
if((somevalue == 1) &&
(someothervalue) &&
(!thenthisone))
{
// ... statements
}
In this case the definition bar shows as current context "(!thenthisone)) {". When you add 20 spaces in front of the curly bracket, the definition bar will show 20 spaces between the if condition and the bracket.