Como corrigir deslocamento de ponteiro do mouse de aplicativos Java no Awesome WM?


15

Como reproduzir no Awesome WM v3.5.2 a 3.5.5 (até agora):

  1. Instale o OpenJDK ou Oracle Java 7 . Este bug foi observado com ambos.
  2. Inicie uma nova sessão do Awesome WM com a configuração padrão .
  3. Inicie o jEdit ou o PyCharm . Este bug foi observado com ambos.
    • Mova o ponteiro do mouse e observe como ele muda com base no fato de você estar passando o mouse sobre o código, arquivos de projeto ou menus. Isso deve funcionar normalmente.
    • Clique e solte no menu Arquivo , insira um dos submenus e observe como o item diretamente sob o ponteiro do mouse é focado o tempo todo.
  4. Pressione Mod4+ Spacerepetidamente até que o layout flutuante seja ativado (o aplicativo estará quase em tela cheia) ou abra outro aplicativo na mesma tag.

Neste ponto, eu esperaria que o mouse se comporte como em aplicativos "normais". Em vez disso, observo o seguinte:

  • Ao clicar e navegar nos menus com o mouse, o ponteiro do mouse e o item de menu focado serão deslocados verticalmente um do outro, aparentemente com a mesma quantidade de pixels que a altura da barra de status.
  • Ao passar o mouse sobre diversos itens como antes, o ícone do cursor será definido como se o ponteiro do mouse estivesse mais alto na tela. Por exemplo, ao passar o mouse sobre a linha superior do texto, você não verá um cursor de texto.

É como se algo não detectasse que as coordenadas da janela mudaram.

Um bug semelhante, mas muito mais irritante, acontece quando você abre outro aplicativo na mesma tag - o comportamento do mouse é como se a janela não tivesse se movido.

Quando você alterna outra marca que já possui um aplicativo aberto - a "área de trabalho do mouse virtual" é movida para o canto superior esquerdo da tela principal .

Como esses erros foram observados no OpenJDK e no Oracle Java, com diferentes aplicativos Java, parece muito provável que o bug esteja no Awesome WM.

Pergunta relacionada , artigo . Eu tentei o _JAVA_AWT_WM_NONREPARENTINGe wmnamecorreções, mas não vai.


Eu acho que o Awesome mais recente é um WM reparador, portanto a opção NÃO-REPARENTING não deve ser necessária.
dknight

Respostas:


1

Você precisa adicionar definições especiais à fonte do gerenciador de janelas, na minha experiência.

Isso aconteceu comigo há alguns anos no marcogerenciador de janelas do MATE desktop ; a 'correção' era fazer o marco fingir ser seu projeto pai, metacity, para utilizar as correções internas do JDK para metacity.

de src/core/display.c:

meta_prop_set_utf8_string_hint (the_display,
                                the_display->leader_window,
                                the_display->atom__NET_WM_NAME,
                                "Metacity (Marco)");

Essa correção cheira ao que aconteceu com a cadeia de agentes do usuário no mundo dos navegadores da Web, mas funcionou para mim.

Além disso, o wiki do arch até menciona o Awesome WM na seção sobre representação de outros gerenciadores de janelas, onde recomenda wmname:
https://wiki.archlinux.org/index.php/Java#Impersonate_another_window_manager

Você pode usar o wmname do suckless.org para fazer a JVM acreditar que está executando um gerenciador de janelas diferente. Isso pode resolver um problema de renderização de GUIs Java que ocorrem em gerenciadores de janelas como Awesome ou Dwm ou Ratpoison.

$ wmname LG3D

Você deve reiniciar o aplicativo em questão após emitir o comando wmname.

Isso funciona porque a JVM contém uma lista codificada de gerenciadores de janelas conhecidos e sem nova criação. Para máxima ironia, alguns usuários preferem se passar por LG3D, o gerenciador de janelas que não é re-pai criado pela Sun, em Java.


-2

Este parece ser um bug relacionado ao Java conhecido no Linux: https://netbeans.org/bugzilla/show_bug.cgi?id=227754

Na URL acima, você pode encontrar uma solução alternativa para o NetBeans IDE, a solução alternativa que funciona para o aplicativo Java que eu uso é NÃO maximizar o aplicativo Java pressionando o botão maximizar, mas redimensionar a janela manualmente para o tamanho que você preferir. Por favor, compartilhe informações se isso ajudá-lo, obrigado!


Não há botão para maximizar no Awesome WM. O uso do layout flutuante piorou ainda mais (a janela inteira ficou cinza até eu alterar o layout) e o JDK "Open" impõe o registro até mesmo para observar erros.
L0b0

Na verdade, parece que o openjdk.java.net exige que os usuários imprimam, assinem, digitalizem e enviem por e-mail o Contrato de Contribuidor da Oracle para ser um "colaborador", o que presumivelmente é necessário para ver o banco de dados de bugs. Acho que o conteúdo deve ser horrível.
L0b0

E a configuração DESKTOP_SESSIONnão funciona. Tentei com vários dos valores sugeridos.
L0b0 27/08/14
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.