Grandes campos em resultados ScrolledComposite em muito a rolagem
-
08-07-2019 - |
Pergunta
Eu tenho um ScrolledComposite que é um pouco como uma planilha. Ele funciona na maior parte sem problemas, mas às vezes tenho um campo grande que enche quase toda a linha (a parte mais à direita).
Quando o foco está neste campo, e setShowFocusedControl (true) foi chamado, swt insiste em mostrar a parte mais à direita do campo, que tem o mesmo efeito de rolagem todo o caminho para a direita em uma grande folha de cálculo - é muito chato para o usuário, como o campo raramente tem muito texto nele.
Assim, a estratégia escolhida para o código é setShowFocusedControl e desligar o tempo todo, o que é muito bug-propensa.
Alguém pode sugerir uma estratégia melhor? Posso fazer swt mostrar a parte mais à esquerda do campo focado?
Solução
Você pode usar setOrigin (Point) ou setOrigin (int, int) na ScrolledComposite para definir a origem do conteúdo rolado no canto superior esquerdo.