¿Cómo reparar el desplazamiento del puntero del mouse de las aplicaciones Java en Awesome WM?


15

Cómo reproducir en Awesome WM v3.5.2 a 3.5.5 (hasta ahora):

  1. Instale OpenJDK u Oracle Java 7 . Este error se ha observado con ambos.
  2. Inicie una nueva sesión de Awesome WM con la configuración predeterminada .
  3. Inicie jEdit o PyCharm . Este error se ha observado con ambos.
    • Mueva el puntero del mouse y observe cómo cambia en función de si se desplaza sobre el código, los archivos de proyecto o los menús. Esto debería funcionar normalmente.
    • Haga clic y suelte en el menú Archivo , ingrese a uno de los submenús y observe cómo se enfoca el elemento directamente debajo del puntero del mouse todo el tiempo.
  4. Presione Mod4+ Spacevarias veces hasta que se active el diseño flotante (la aplicación estará casi a pantalla completa) o abra otra aplicación en la misma etiqueta.

En este punto, esperaría que el mouse se comporte como lo hace con las aplicaciones "normales". En cambio, observo lo siguiente:

  • Al hacer clic y navegar por los menús con el mouse, el puntero del mouse y el elemento de menú enfocado se compensarán verticalmente entre sí, aparentemente con la misma cantidad de píxeles que la altura de la barra de estado.
  • Al pasar el mouse sobre elementos varios como antes, el ícono del cursor se configurará como si el puntero del mouse estuviera más arriba en la pantalla. Por ejemplo, al pasar el cursor sobre la línea superior de texto, no verá un cursor de texto.

Es como si algo no detectara que las coordenadas de la ventana han cambiado.

Un error similar pero mucho más molesto ocurre cuando abre otra aplicación en la misma etiqueta : el comportamiento del mouse es como si la ventana no se hubiera movido en absoluto.

Cuando alterna otra etiqueta que ya tiene una aplicación abierta , el "escritorio virtual del mouse" se mueve a la esquina superior izquierda de la pantalla principal .

Dado que estos errores se han observado tanto en OpenJDK como en Oracle Java, con diferentes aplicaciones Java, parece muy probable que el error esté en Awesome WM.

Pregunta relacionada , artículo . Probé los _JAVA_AWT_WM_NONREPARENTINGy wmnamearreglos, pero no voy.


Creo que el último Awesome es un WM de reparenting, por lo que no debería ser necesaria la opción NO REPARENTING.
dknight 01 de

Respuestas:


1

Necesitas agregar definiciones especiales a la fuente para el administrador de ventanas, en mi experiencia.

Esto me sucedió hace un par de años en el marcoadministrador de ventanas del escritorio MATE ; la "solución" fue hacer que Marco simulara ser su proyecto principal, metacity, para utilizar las soluciones integradas de 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)");

Esta solución apesta a lo que sucedió con la cadena de agente de usuario en el mundo de los navegadores web, pero funcionó para mí.

Además, el wiki de arco incluso menciona Awesome WM en la sección sobre la suplantación de otros administradores de ventanas, donde recomienda wmname:
https://wiki.archlinux.org/index.php/Java#Impersonate_another_window_manager

Puede usar el wmname de suckless.org para hacer que la JVM crea que está ejecutando un administrador de ventanas diferente. Esto puede resolver un problema de representación de las GUI de Java que ocurren en los administradores de ventanas como Awesome o Dwm o Ratpoison.

$ wmname LG3D

Debe reiniciar la aplicación en cuestión después de emitir el comando wmname.

Esto funciona porque la JVM contiene una lista codificada de administradores de ventanas conocidos que no son re-padres. Para mayor ironía, algunos usuarios prefieren hacerse pasar por LG3D, el administrador de ventanas sin re-crianza escrito por Sun, en Java.


-2

Esto parece ser un error relacionado con Java conocido en Linux: https://netbeans.org/bugzilla/show_bug.cgi?id=227754

En la URL anterior puede encontrar una solución para NetBeans IDE, la solución que funciona para la aplicación Java que uso es NO maximizar la aplicación Java presionando el botón maximizar, sino cambiar el tamaño de la ventana manualmente al tamaño que prefiera. Por favor, comparte información si esto te ayuda, ¡gracias!


No hay un botón para maximizar en Awesome WM. El uso del diseño flotante lo hizo aún peor (toda la ventana es gris hasta que cambie el diseño), y JDK "Abrir" exige el registro incluso para ver los errores.
l0b0

En realidad, parece que openjdk.java.net requiere que los usuarios impriman, firmen, escaneen y envíen por correo electrónico el Acuerdo de Colaborador de Oracle para ser un "contribuidor", que presumiblemente es necesario para ver su base de datos de errores. Supongo que el contenido debe ser bastante horrible.
l0b0

Y la configuración DESKTOP_SESSIONno funciona. Probado con varios de los valores sugeridos.
l0b0
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.