Localizar localização composta na tela

Estou implementando um teclado na tela em Java para SWT e AWT. Uma coisa importante é mover o teclado para uma posição em que o campo de texto selecionado possa aparecer e não esteja atrás do teclado na tela.

Para o AWT, posso detectar a posição do componente selecionado atual com

Component owner = KeyboardFocusManager.getCurrentKeyboardFocusManager().getFocusOwner();
if (owner == null) {
    return;
}
Point ownerLocation = owner.getLocationOnScreen();
Dimension ownerSize = owner.getSize();

Como posso implementar a mesma lógica no SWT? Eu recebo o widget selecionado atual adicionando um listener de foco à fila de eventos SWT. Mas quando eu ligo

Point location = new Point(mTextWidget.getLocation().x, mTextWidget.getLocation().y);
Dimension dimension = new Dimension(mTextWidget.getSize().x, mTextWidget.getSize().y);

Vou obter a posição relativa ao composto pai.

Como posso obter a localização de um widget especial em relação à tela completa?

questionAnswers(1)

yourAnswerToTheQuestion