It works ok for Composites, but not for Canvas. The foreground is not inherited. We need a "setForegroundMode(SWT.INHERITS_FORCE)" so I guess this solution is not going to work in all the cases. The good luck is that I can get foreground from the parent, and it is not going to change because the view is activated or not. As a workaround is find, but maybe there is a more safe solution.
I the parent is a composite, did you try parent.setBackgroundMode(SWT.INHERITS_FORCE) ?
Oh, that makes the trick! Thanks!