title: SWT FocusListener focusLost() is never called
body: <p>I have a Composite that contains a table with columns. The columns have certain validation, and if the field values don't pass the validation, they are coloured red and set an error message.
  I want to have a Listener that checks if there is any error message set by the columns. I added a listener to the composite but it is never called.
  I thought that the focusLost() method should be called whenever I click away from the composite into other composites or elsewhere within the shell. But it is never called.</p>
  <pre><code>myComposite = new MyComposite(myGroup, myEditor, getModel(), SWT.NONE,
              calculator, this, application, modelService, partService, progressService, shell);
      myComposite.setLayout(new GridLayout(2, false));
      GridDataFactory.swtDefaults().span(21, 1).grab(true, true).align(SWT.FILL, SWT.TOP).applyTo(myComposite);
      
      FocusListener focusListener = new FocusListener() {
          @Override
          public void focusLost(FocusEvent e)
          {
              if (myComposite.getErrorMessage() != null) {
              getValidator().getDecorator().setError(myComposite, myComposite.getErrorMessage());
              }
          }
  
          @Override
          public void focusGained(FocusEvent e) { /** nothing */  }
      };
      
  myComposite.addFocusListener(focusListener);
  
      
  </code></pre>