Як виправити зміщення покажчика миші на додатках Java у Awesome WM?


15

Як відтворити в Awesome WM v3.5.2 до 3.5.5 (поки що):

  1. Встановіть OpenJDK або Oracle Java 7 . Ця помилка спостерігалася в обох.
  2. Почніть новий сеанс Awesome WM з конфігурацією за замовчуванням .
  3. Почніть або jEdit, або PyCharm . Ця помилка спостерігалася в обох.
    • Перемістіть курсор миші та поспостерігайте, як він змінюється, залежно від того, чи ви наведіть курсор на код, файли проекту чи меню. Це повинно працювати нормально.
    • Клацніть та відпустіть у меню « Файл », увійдіть в одне з підменю та спостерігайте, як увесь час фокусується елемент безпосередньо під вказівником миші.
  4. Натискайте Mod4+ Spaceкілька разів, поки не буде активовано плаваючий макет (додаток буде майже на весь екран) або відкрийте іншу програму в тому ж тезі.

У цей момент я б очікував, що миша буде вести себе так, як це робиться з "звичайними" програмами. Натомість я спостерігаю таке:

  • При натисканні та навігації по меню мишкою вказівник миші та зосереджений пункт меню будуть вертикально зміщені один від одного, здавалося б, на тій же кількості пікселів, що і висота рядка стану.
  • Якщо навести курсор миші на різні предмети, як і раніше, піктограма курсору буде встановлена ​​так, ніби вказівник миші вище на екрані. Наприклад, навести курсор на верхній рядок тексту, ви не побачите текстовий курсор.

Це як би щось не виявляє, що координати вікон змінилися.

Подібна, але набагато більш дратівлива помилка трапляється, коли ви відкриваєте іншу програму в тому ж тезі - поведінка миші є так, як ніби вікно зовсім не перемістилося.

Коли ви перемикаєте інший тег, у якому вже відкрита програма - "віртуальний робочий стіл миші" переміщується у верхній лівий кут основного екрана .

Оскільки ці помилки спостерігалися і в OpenJDK, і в Oracle Java, з різними додатками Java, здається, дуже ймовірно, що помилка знаходиться в Awesome WM.

Супутнє запитання , стаття . Я спробував _JAVA_AWT_WM_NONREPARENTINGі wmnameвиправляє, але не йти.


Я думаю, що остання Awesome - це переглядання WM, тому НЕПОЗНАЧАЛЬНИЙ варіант не повинен бути потрібним.
dknight

Відповіді:


1

По мій досвід, вам потрібно додати до джерела спеціальні визначення джерела для менеджера вікон.

Це сталося зі мною пару років тому у marcoвікні менеджера вікон MATE ; «виправлення» полягало в тому, щоб Марко прикидався його батьківським проектом, метацитом, використовувати вбудовані виправлення JDK для метацити.

від src/core/display.c:

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

Це виправлення нагадує про те, що сталося з рядком агента користувача у світі веб-браузерів, але це працювало для мене.

Крім того, арка wiki навіть згадує Awesome WM у розділі про видавання себе за інших менеджерів вікон, де вона рекомендує wmname:
https://wiki.archlinux.org/index.php/Java#Impersonate_another_window_manager

Ви можете використовувати ім'я wm від suckless.org, щоб JVM повірив, що ви використовуєте інший менеджер вікон. Це може вирішити проблему візуалізації графічних інтерфейсів Java, що виникають у менеджерах вікон, таких як Awesome або Dwm або Ratpoison.

$ wmname LG3D

Ви повинні перезапустити відповідну програму після видачі команди wmname.

Це працює, тому що JVM містить жорстко кодований список відомих менеджерів вікон, які не повторюються. Для максимальної іронії деякі користувачі вважають за краще себе представляти LG3D, менеджеру вікон, який не є повторним вихованням, написаним Sun на Java.


-2

Здається, це відома помилка, пов’язана з Java в Linux: https://netbeans.org/bugzilla/show_bug.cgi?id=227754

На наведеній вище URL-адресі ви можете знайти вирішення для IDE NetBeans, вирішення якого працює для програми Java, яку я використовую, - НЕ максимізувати додаток Java, натискаючи кнопку максимального збільшення, але змінити розмір вікна вручну до потрібного вам розміру. Будь ласка, поділіться інформацією, якщо це допоможе вам, дякую!


У Awesome WM немає жодної кнопки для максимізації. Використання плаваючого макета зробило це ще гірше (все вікно сіре, поки я не зміню макет), і "Відкрити" JDK примушує реєстрацію навіть дивитися на помилки.
l0b0

Насправді, схоже, що openjdk.java.net вимагає, щоб користувачі друкували, підписували, сканували та надсилали електронною поштою Угоду про співавтор Oracle як "дописувача", що, імовірно, необхідно, щоб побачити їхню базу даних про помилки. Вгадайте, вміст повинен бути досить приголомшливим.
l0b0

І налаштування DESKTOP_SESSIONне працює. Спробували кілька запропонованих значень.
l0b0
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.