Bug 55463

Summary: Некорректная работа опций для работы с текстом (QKeySequence)
Product: Sisyphus Reporter: Vladislav Glinkin <glinkinvd>
Component: maliit-keyboardAssignee: Sergey V Turchin <zerg>
Status: NEW --- QA Contact: qa-sisyphus
Severity: normal    
Priority: P5 CC: zerg
Version: unstable   
Hardware: x86_64   
OS: Linux   

Description Vladislav Glinkin 2025-08-01 16:53:55 MSK
Версия пакета: maliit-keyboard-2.3.1-alt8

Шаги воспроизведения:
1) Открыть текстовый документ
2) Ввести какой-либо текст
3) Проверить работу опций "Отменить", "Повторить", "Выбрать всё", "Вырезать", "Копировать", "Вставить" при работе с текстом

Фактический результат:
При нажатии на кнопку выбранной опции отправляется сочетание клавиш, но без клавиши-модификатора (Ctrl и т.д.).

Ожидаемый результат:
Корректная работа опций.

Дополнительная информация:
Опции работают через предопределённые QKeySequence (https://doc.qt.io/qt-6/qkeysequence.html#StandardKey-enum).
Есть предположение, что причина где-то в /src/view/abstracttexteditor.cpp у void AbstractTextEditor::sendKeySequence

Там есть цикл с условием:
for (int i = 0; i < actionSequence.count(); i++) {
    const int key = actionSequence[i] & ~AllModifiers;
    const int modifiers = actionSequence[i] & AllModifiers;
    QString text("");
    if (modifiers == Qt::NoModifier || modifiers == Qt::ShiftModifier) {
        text = QString(key);
    }
    sendKeyPressAndReleaseEvents(key, static_cast<Qt::KeyboardModifiers>(modifiers), text);
}
Comment 1 Vladislav Glinkin 2025-08-01 17:00:47 MSK
> При нажатии на кнопку выбранной опции отправляется сочетание клавиш, но без клавиши-модификатора (Ctrl и т.д.).

Если чуть проще: то вместо Ctrl + A отправляется просто A, к примеру.