Bagaimana cara memperbaiki aplikasi Java pointer mouse di Awesome WM?

15

Cara mereproduksi dalam Awesome WM v3.5.2 hingga 3.5.5 (sejauh ini):

  1. Instal OpenJDK atau Oracle Java 7 . Bug ini telah diamati dengan keduanya.
  2. Mulai sesi WM Keren baru dengan konfigurasi default .
  3. Mulai jEdit atau PyCharm . Bug ini telah diamati dengan keduanya.
    • Gerakkan penunjuk tetikus, dan amati bagaimana ia berubah berdasarkan apakah Anda mengarahkan kode, file proyek, atau menu. Ini seharusnya bekerja secara normal.
    • Klik dan lepaskan pada menu File , masukkan salah satu sub-menu, dan amati bagaimana item langsung di bawah penunjuk tetikus difokuskan sepanjang waktu.
  4. Tekan Mod4+ Spaceberulang kali hingga tata letak mengambang diaktifkan (aplikasi akan hampir layar penuh) atau buka aplikasi lain dalam tag yang sama.

Pada titik ini, saya berharap mouse berperilaku seperti halnya dengan aplikasi "normal". Sebaliknya saya perhatikan yang berikut:

  • Saat mengklik dan menavigasi menu dengan mouse, penunjuk tetikus dan item menu yang difokuskan akan saling diimbangi secara vertikal , seakan-akan memiliki jumlah piksel yang sama dengan ketinggian bilah status.
  • Saat mengarahkan item lain seperti sebelumnya, ikon kursor akan ditetapkan seolah-olah penunjuk mouse lebih tinggi di layar. Misalnya, melayang di atas baris teks Anda tidak akan melihat kursor teks.

Seolah-olah ada sesuatu yang tidak mendeteksi bahwa koordinat jendela telah berubah.

Bug serupa tetapi jauh lebih menyebalkan terjadi ketika Anda membuka aplikasi lain di tag yang sama - perilaku mouse seolah-olah jendela tidak bergerak sama sekali.

Ketika Anda beralih tag lain yang sudah memiliki aplikasi terbuka - "virtual mouse desktop" dipindahkan ke kiri atas layar utama .

Karena bug ini telah diamati di OpenJDK dan Oracle Java, dengan aplikasi Java yang berbeda, tampaknya sangat mungkin bug tersebut ada di Awesome WM.

Pertanyaan terkait , artikel . Saya mencoba _JAVA_AWT_WM_NONREPARENTINGdan wmnamememperbaiki, tetapi tidak pergi.

l0b0
sumber
Saya pikir Awesome terbaru adalah WM reparenting sehingga opsi NONREPARENTING tidak diperlukan.
dknight

Jawaban:

1

Anda perlu menambahkan definisi khusus ke sumber untuk pengelola jendela, menurut pengalaman saya.

Saya mengalami hal ini pada saya beberapa tahun yang lalu di marcowindow manager MATE desktop ; 'perbaikan' adalah membuat marco berpura-pura menjadi proyek induknya, metacity, untuk memanfaatkan perbaikan bawaan JDK untuk metacity.

dari src/core/display.c:

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

Perbaikan ini berbau apa yang terjadi pada string agen pengguna di dunia browser web, tetapi itu berhasil untuk saya.

Selain itu, wiki lengkung bahkan menyebutkan WM Luar Biasa di bagian tentang menyamar sebagai manajer jendela lainnya, yang direkomendasikan wmname:
https://wiki.archlinux.org/index.php/Java#Impersonate_another_window_managerager

Anda dapat menggunakan wmname dari suckless.org untuk membuat JVM percaya Anda menjalankan window manager yang berbeda. Ini dapat memecahkan masalah rendering GUI Java yang terjadi di window manager seperti Awesome atau Dwm atau Ratpoison.

$ wmname LG3D

Anda harus memulai ulang aplikasi yang dipermasalahkan setelah mengeluarkan perintah wmname.

Ini berfungsi karena JVM berisi daftar manajer jendela yang dikenal dan tidak dipasangkan dengan hard-code. Untuk ironi maksimum, beberapa pengguna lebih suka menyamar sebagai LG3D, window manager non-parenting yang ditulis oleh Sun, di Jawa.

Wyatt8740
sumber
-2

Ini tampaknya dikenal bug terkait Java di Linux: https://netbeans.org/bugzilla/show_bug.cgi?id=227754

Pada URL di atas Anda dapat menemukan solusi untuk NetBeans IDE, solusi yang berfungsi untuk aplikasi Java yang saya gunakan adalah TIDAK memaksimalkan aplikasi Java dengan menekan tombol maksimalkan, tetapi untuk mengubah ukuran jendela secara manual sesuai ukuran yang Anda inginkan. Silakan bagikan info jika ini membantu Anda, terima kasih!

batang
sumber
Tidak ada tombol untuk memaksimalkan di Awesome WM. Menggunakan tata letak mengambang membuatnya lebih buruk (seluruh jendela berwarna abu-abu sampai saya mengubah tata letak), dan "Buka" JDK memberlakukan pendaftaran bahkan untuk melihat bug.
l0b0
Sebenarnya, tampaknya openjdk.java.net mengharuskan pengguna untuk mencetak, menandatangani, memindai dan mengirim email Perjanjian Kontributor Oracle untuk menjadi "kontributor", yang mungkin diperlukan untuk melihat basis data bug mereka. Tebak isinya pasti cukup mengerikan.
l0b0
Dan pengaturan DESKTOP_SESSIONtidak berfungsi. Sudah mencoba beberapa nilai yang disarankan.
l0b0