Come riprodurre in Awesome WM da v3.5.2 a 3.5.5 (finora):
- Installa OpenJDK o Oracle Java 7 . Questo bug è stato osservato con entrambi.
- Avvia una nuova sessione di Awesome WM con la configurazione predefinita .
- Avvia jEdit o PyCharm . Questo bug è stato osservato con entrambi.
- Sposta il puntatore del mouse e osserva come cambia in base al passaggio del mouse sopra codice, file di progetto o menu. Dovrebbe funzionare normalmente.
- Fai clic e rilascia sul File menu, accedi a uno dei sottomenu e osserva come l'elemento direttamente sotto il puntatore del mouse è sempre focalizzato.
- Premi Mod4 +Spazio ripetutamente fino al layout mobile è attivato (l'applicazione sarà quasi a schermo intero) o apri un'altra applicazione nello stesso tag.
A questo punto, mi aspetto che il mouse si comporti come con le applicazioni "normali". Osservo invece quanto segue:
- Quando si fa clic e si naviga nei menu con il mouse, il puntatore del mouse e la voce di menu focalizzata saranno sfalsati verticalmente l'uno dall'altro, apparentemente alla stessa quantità di pixel dell'altezza della barra di stato.
- Quando passi con il mouse su elementi vari come prima, l'icona del cursore sarà impostato come se il puntatore del mouse fosse più in alto sullo schermo. Ad esempio, passando il mouse sopra la riga di testo superiore non vedrai un cursore di testo.
È come se qualcosa non rilevasse che le coordinate della finestra sono cambiate.
Un bug simile ma molto più fastidioso si verifica quando apri un'altra applicazione nello stesso tag – il comportamento del mouse è come se la finestra non si fosse spostata affatto.
Quando commuta un altro tag che ha già un'applicazione aperta – il "desktop del mouse virtuale" viene spostato in in alto a sinistra della schermata principale .
Poiché questi bug sono stati osservati sia in OpenJDK che in Oracle Java, con diverse applicazioni Java, sembra molto probabile che il bug sia in Awesome WM.
Domanda correlata, articolo. Ho provato il _JAVA_AWT_WM_NONREPARENTING
e wmname
correzioni, ma non va.
Risposta accettata:
È necessario aggiungere definizioni speciali al sorgente per il window manager, secondo la mia esperienza.
Mi è successo un paio di anni fa nel marco
del desktop MATE gestore di finestre; la "correzione" doveva far fingere a Marco di essere il suo progetto genitore, metacity, per utilizzare le correzioni integrate di JDK per la metacity.
da src/core/display.c
:
meta_prop_set_utf8_string_hint (the_display,
the_display->leader_window,
the_display->atom__NET_WM_NAME,
"Metacity (Marco)");
Questa correzione puzza di quello che è successo alla stringa dell'agente utente nel mondo dei browser Web, ma ha funzionato per me.
Correlati:comando Ubuntu runuser?
Inoltre, l'arch wiki menziona anche Awesome WM nella sezione sull'imitazione di altri gestori di finestre, dove consiglia wmname
:
https://wiki.archlinux.org/index.php/Java#Impersonate_another_window_manager
Puoi usare il nome wm da suckless.org per far credere alla JVM che
stai eseguendo un gestore di finestre diverso. Ciò potrebbe risolvere un problema di rendering
delle GUI Java che si verifica in gestori di finestre come Awesome o Dwm o
Ratpoison.
$ wmname LG3D
È necessario riavviare l'applicazione in questione dopo aver eseguito il comando wmname
.
Questo funziona perché la JVM contiene un elenco codificato di gestori di finestre noti,
non regenitoriali. Per la massima ironia, alcuni utenti preferiscono
impersonare LG3D, il window manager non regenitoriale scritto da
Sun, in Java.