Bug 55463 - Некорректная работа опций для работы с текстом (QKeySequence)
Summary: Некорректная работа опций для работы с текстом (QKeySequence)
Status: NEW
Alias: None
Product: Sisyphus
Classification: Development
Component: maliit-keyboard (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 normal
Assignee: Sergey V Turchin
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2025-08-01 16:53 MSK by Vladislav Glinkin
Modified: 2025-08-01 17:00 MSK (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
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, к примеру.