Here is the doc for ``IPreferenceStore.addPropertyChangeListener(IPreferenceChangeListener)``

```
A listener will be called in the same Thread
     * that it is invoked in. Any Thread dependant listeners (such as
     * those who update an SWT widget) will need to update in the
     * correct Thread. In the case of an SWT update you can update
     * using Display#syncExec(Runnable) or Display#asyncExec(Runnable).
``

I assume the only way to change the property is through the preference dialog, so the ``IPreferenceChangeListener`` will always be called within the UI Thread.

That being said, I can of course still wrap https://github.com/scala-ide/scala-ide/pull/309/files#L9R338 in an ``DisplayThread.asyncExec``.

What's your take?