Cliques do mouse não funcionam corretamente em aplicativos QT

5

Eu uso o Gnome como meu ambiente de trabalho, e o mouse funciona bem. No entanto, quando tento usar um aplicativo QT, os cliques do mouse não funcionam corretamente. Por exemplo, se eu clicar e soltar dentro de um editor de texto, ele começará a destacar o texto como se eu ainda estivesse segurando o botão do mouse. É como se ele não registrasse o evento mouse para cima .

Tem alguma ideia de por que isto pode estar a acontecer ou de como resolver o problema?

    
por Ben Davis 15.01.2018 / 05:19

1 resposta

0

Finalmente, uma solução geral!

O problema é causado pelo suporte da Qt para telas sensíveis ao toque. O que fiz foi usar xinput para desativar a tela de toque:

$ xinput --list
⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ DLL06E5:01 06CB:7A13 Touchpad             id=14   [slave  pointer  (2)]
⎜   ↳ ELAN Touchscreen                          id=13   [slave  pointer  (2)]
⎣ Virtual core keyboard                         id=3    [master keyboard (2)]
[... bunch of keyboard stuff]

A entrada "ELAN Touchscreen" é a que mais nos interessa. É id é 13. Então:

$ xinput --disable 13

Com a entrada da tela sensível ao toque desligada, o problema não acontece mais. Não preciso reiniciar os aplicativos do Qt que já estão em execução. O toque pode ser reativado com:

$ xinput --enable 13

Esta questão do AskUbuntu mostra outras maneiras de desativar o toque. Infelizmente, não conheço uma maneira de desativar o toque apenas para um aplicativo específico ou apenas para aplicativos Qt.

A razão pela qual o problema não aconteceu com o Xephyr (como descrito abaixo) é porque o Xephyr começa sem suporte para eventos de toque.

(Estou mantendo essas informações, pois isso pode ajudar as pessoas a diagnosticar problemas semelhantes no futuro, ou pessoas que estejam procurando uma solução mais detalhada.)

Eu corri para este problema ao tentar executar aplicativos Qt 5 em um desktop Gnome. Descobri que, se eu executar o aplicativo Qt em uma sessão Xephyr, o problema desaparece:

$ Xephyr :1 -screen 1240x800 &
$ DISPLAY=:1 path/to/executable

O Xephyr é um Xserver que pode atuar como um cliente de outro Xserver. (Eu também tentei o Xnest, e ele funciona também). Ao rodar o software em um Xserver diferente, ele é essencialmente isolado do ambiente de destino sendo executado no Xserver padrão.

Para alguns cenários de casos de uso, isso pode ser uma solução útil. Infelizmente, o isolamento significa que recortar e colar entre o aplicativo em execução no Xephyr e os outros aplicativos exigiria adicionar um pouco de cola substancial.

Eu tentei lxqt-config para ver se eu poderia alterar algumas configurações do Qt para corrigir o problema, mas não encontrei uma configuração que corrigisse o problema.

Eu também tentei iniciar o aplicativo com -style=gtk , mas isso só altera o estilo visual sem alterar o comportamento.

    
por 08.08.2018 / 00:12

Tags