Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: xintrea от Сентябрь 14, 2013, 22:32



Название: Обновления. Дожили. Перестали работать Ctrl+B, Ctrl+I и т.д. в русской раскладке
Отправлено: xintrea от Сентябрь 14, 2013, 22:32
Народ, кто тут пользуется Qt4 в Linux?

Пару дней назад обновил Debian, в результате вылез глюк:

Перестали ловиться клавиатурные комбинации Ctrl+... (Ctrl+B, Ctrl+U, Ctrl+I) в русской раскладке.

То есть, теперь такой код не работает:

Код:
boldKey = new QToolButton(this);
boldKey->setShortcut(QKeySequence(QKeySequence::Bold));

Вот такой сюрприз.

На Лоре (http://www.linux.org.ru/forum/general/9584301) говорят, что баг этот обнаружен еще летом 2013 г., но в свете усиленного допиливания Qt5, исправлять его в Qt4 никто не собирается. Правда, пока не могу понять, кто виноват - сам Qt4.8.5 или Qt4.8.5 в среде KDE4.

Кто что думает по этому поводу? Как пофиксить, обойти?



Название: Re: Обновления. Дожили. Перестали работать Ctrl+B, Ctrl+I и т.д. в русской раскладке
Отправлено: xintrea от Сентябрь 14, 2013, 22:51
Так, походу баг исправили итальянцы полтора дня назад, файл:

Код:
/src/gui/kernel/qkeymapper_x11.cpp

В последней версии написано так:

Код:
if (!XkbLookupKeySym(X11->display, xkeycode, (xmodifiers & (0xff00 | LockMask | qt_num_lock_mask)), &consumedModifiers, &baseKeySym))

А надо так:

Код:
if (!XkbLookupKeySym(X11->display, xkeycode, (xmodifiers & (LockMask | qt_num_lock_mask)), &consumedModifiers, &baseKeySym))

Подробности: https://codereview.qt-project.org/#change,64283 (https://codereview.qt-project.org/#change,64283)

Так что кто там собирает Qt4 из исходников, можете предварительно фиксить чтоб не мучаться. Надеюсь, рано или поздно исправление доползет до Debian.