четверг, 28 февраля 2019 г.

Куда катится оракул?

Мы сейчас переводим IDEA с JDK 8 на JDK 11 и обнаружили забавный баг: после нажатия правой кнопки Alt перестаёт работать левый Alt, а значит лесом идёт вся навигация и большинство пользовательских шорткатов - помогает только перезапуск IDE.

За дело взялся я и обнаружил, что ещё три года назад в Oracle поменяли файл AWTEvent.m, пытаясь сделать из правой кнопки Alt что-то вроде AltGr для macOS. Проанализировав изменения я осознал, что они завели статическое поле altGRPressed = NO, которое меняют на YES при первом нажатии правого Alt. И больше никто и никогда не ставит это поле в состояние NO.

Пытаюсь разобраться во всей этой машинерии, ибо простой фикс мне не нравится. Наверняка там будут ещё сюрпризы...

4 комментария:

  1. Ответы
    1. В том же изменении есть вложенный if со смещёнными скобками, из-за чего после выравнивания читается совсем не так, как до. Я орал вчера, бегал по комнатам и материал индусов

      Удалить
    2. Блин! Телефон не даёт мне материть индусов. Исправляет на материал 8)

      Удалить
    3. Материал индусов тоже хорошо звучит :)

      Удалить