Comando para forçar a remoção de um ponteiro (liberação do mouse capturado)

35

Às vezes, o Firefox não libera o mouse após arrastá-lo, por isso preciso interromper o aplicativo para forçá-lo a liberar sua captura de ponteiro.

Existe algum comando para forçar um aplicativo a desagrupar o ponteiro sem matá-lo?

RYN
fonte
2
Se você possui a linha de comando, pode tentar desativar e reativar o mouse. Veja esta página wiki . Não tenho certeza de que funcione, especialmente se o motivo do congelamento estiver relacionado a um problema de Javascript.
Paolo
@Guandalino: Eu tenho linha de comando (abrindo outro terminal pressionando Alt + F2); Vou testar isso na próxima ocorrência do problema, Obrigado
RYN
Comecei a ter esse problema com o Firefox 13, e uma pesquisa na web me levou a essa pergunta. Você está por acaso usando a extensão de guias de estilo de árvore? Parece haver algum problema ao arrastar as guias.
Juliano
@ Juliano: Eu não usei as abas do estilo de árvore ext. ! E até agora não vi problemas novamente, então não tentei soluções também.
RYN

Respostas:

38

Nas instalações modernas do X.org, existe um XF86Ungrabkeyym, que faz com que o servidor libere todas as capturas ativas de ponteiro ou teclado. Você pode fazer com que o servidor interrompa todas as garras, ativando a opção XKB de ação de interrupção e, em seguida, gerando o teclado com um comando ou com o teclado. Com o xdotool :

setxkbmap -option grab:break_actions
xdotool key XF86Ungrab

Em alguns sistemas, o XF86Ungrabkeyym é vinculado à combinação de teclas Ctrl+ Alt+ Keypad /. No entanto, essa possibilidade geralmente é desativada porque pode permitir ignorar um protetor de tela ).

Gilles 'SO- parar de ser mau'
fonte
Preciso executar o comando acima toda vez, ou a cada inicialização, ou apenas uma vez?
Aaron Franke
@AaronFranke Execute este comando quando o problema ocorrer.
Gilles 'SO- stop be evil'
8

Eu respondi isso no Superusuário e estou citando aqui:

[Como Gilles observou:] De fato, é possível fazer isso (pelo menos nas versões recentes do X).

Você pode fazer isso pressionando a XF86Ungrabtecla, introduzida neste commit .

Por padrão, esse keyym não está vinculado a nenhuma chave física ou combinação de teclas (foi desativado em 2012 após ter sido relatado como uma falha de segurança, pois permite que qualquer pessoa ignore as telas de bloqueio quebrando as garras). Em algumas outras configurações, ele é vinculado a um atalho que usa o teclado numérico. Obviamente, isso não funcionará em laptops sem teclado.

Mas você ainda pode ativar o keyym usando xdotool:

xdotool key XF86Ungrab

Isso funciona com o X.org versão 2: 1.11.4-0ubuntu10.8 no Ubuntu Precise.

Caracol mecânico
fonte
-6

Ctrl+ Glibera o foco do mouse na maioria das situações.

llua
fonte
Desculpe, eu gostaria de entender melhor, isso é uma coisa específica do linux ou firefox?
Paolo
Linux, não tenho certeza, mas acho que é uma função do xorg. Eu o uso frequentemente para liberar o foco dos videogames em tela cheia.
11002 llua
2
Duvido que este trabalho; é um modificador único mais uma tecla, essas combinações são usadas para aplicativos (por exemplo, o firefox ativa a caixa "Localizar" com isso) e não para algo como X (X usa teclas como Alt + Ctrl + Backspace)! depois disso eu tentei com um normal arrastar e soltar e nada aconteceu!
RYN
4
Esse não é o caso em nenhuma versão do Firefox que eu já vi, e definitivamente não é o caso “na maioria das situações”: muitos aplicativos usam Ctrl+Gpara seus próprios propósitos, não existe essa ligação X-wide.
Gilles 'SO- stop be evil'