Come correggere l'offset del puntatore del mouse delle applicazioni Java in Awesome WM?


15

Come riprodurre in Awesome WM da v3.5.2 a 3.5.5 (finora):

  1. Installa OpenJDK o Oracle Java 7 . Questo errore è stato osservato con entrambi.
  2. Inizia una nuova sessione WM impressionante con la configurazione predefinita .
  3. Avviare jEdit o PyCharm . Questo errore è stato osservato con entrambi.
    • Spostare il puntatore del mouse e osservare come cambia in base al passaggio del mouse su codice, file di progetto o menu. Questo dovrebbe funzionare normalmente.
    • Fare clic e rilasciare dal menu File , accedere a uno dei sottomenu e osservare come l'elemento direttamente sotto il puntatore del mouse è sempre attivo.
  4. Premi Mod4+ Spaceripetutamente fino a quando non viene attivato il layout mobile (l'applicazione sarà quasi a schermo intero) o apri un'altra applicazione con lo stesso tag.

A questo punto, mi aspetto che il mouse si comporti come fa con le applicazioni "normali". Invece osservo quanto segue:

  • Quando si fa clic e si naviga nei menu con il mouse, il puntatore del mouse e la voce di menu focalizzata vengono spostati verticalmente l' uno dall'altro, apparentemente con la stessa quantità di pixel dell'altezza della barra di stato.
  • Quando si passa con il mouse su elementi vari come prima, l' icona del cursore verrà impostata come se il puntatore del mouse fosse più in alto sullo schermo. Ad esempio, passando con il mouse sopra la riga superiore del testo 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 si apre un'altra applicazione nello stesso tag : il comportamento del mouse è come se la finestra non si fosse affatto spostata.

Quando si attiva o disattiva un altro tag che ha già un'applicazione aperta , il "desktop del mouse virtuale" viene spostato nella parte superiore 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 le _JAVA_AWT_WM_NONREPARENTINGe wmnamecorrezioni, ma non vado.


Penso che l'ultimo Awesome sia un WM riparatore, quindi l'opzione NON REPARENTING non dovrebbe essere necessaria.
dknight

Risposte:


1

Nella mia esperienza, devi aggiungere definizioni speciali all'origine per il gestore delle finestre.

Mi è successo un paio di anni fa nel marcogestore delle finestre del desktop MATE ; la "soluzione" era far sì che marco fingesse di essere il suo progetto genitore, metacity, per utilizzare le correzioni integrate di JDK per metacity.

a partire dal 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 ciò che è accaduto alla stringa dell'agente utente nel mondo dei browser Web, ma ha funzionato per me.

Inoltre, l'arch wiki menziona anche Awesome WM nella sezione sulla rappresentazione di altri gestori di finestre, dove raccomanda wmname:
https://wiki.archlinux.org/index.php/Java#Impersonate_another_window_manager

È possibile utilizzare il nome wm di suckless.org per far credere alla JVM che si sta eseguendo un gestore di finestre diverso. Ciò può risolvere un problema di rendering delle GUI Java che si verificano nei gestori di finestre come Awesome o Dwm o Ratpoison.

$ wmname LG3D

È necessario riavviare l'applicazione in questione dopo aver emesso il comando wmname.

Questo funziona perché la JVM contiene un elenco hardcoded di gestori di finestre noti e non parentali. Per ironia della sorte, alcuni utenti preferiscono impersonare LG3D, il gestore di finestre senza parenting scritto da Sun, in Java.


-2

Questo sembra essere noto bug relativo a Java su Linux: https://netbeans.org/bugzilla/show_bug.cgi?id=227754

Sull'URL sopra puoi trovare una soluzione alternativa per NetBeans IDE, una soluzione che funziona con l'app Java che uso è di NON massimizzare l'app Java premendo il pulsante di ingrandimento, ma per ridimensionare manualmente la finestra in base alle dimensioni che preferisci. Per favore condividi le informazioni se questo ti aiuta, grazie!


Non esiste un pulsante per ingrandire in Awesome WM. L'uso del layout mobile lo ha reso ancora peggio (l'intera finestra è grigia fino a quando non modifico il layout), e "Apri" JDK impone la registrazione anche per esaminare i bug.
l0b0,

In realtà, sembra che openjdk.java.net richieda agli utenti di stampare, firmare, scansionare e inviare per e-mail l'Accordo di Collaboratore Oracle per essere un "collaboratore", che presumibilmente è necessario per vedere il loro database di bug. Immagino che il contenuto debba essere piuttosto orribile.
l0b0,

E l'impostazione DESKTOP_SESSIONnon funziona. Provato con molti dei valori suggeriti.
l0b0,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.