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?