QWidgetTextControl: ignore GroupSwitchModifier for BackSpace
"The keypad and group switch modifier should not make a difference" when matches a QKeySequence, see QKeyEvent::matches() implementation. Qt(xcb) treats AltGr as GroupSwitchModifier in hard code, which should come from Qt 4 era. Nowadays, with different xkb setups, Mode_switch could be different keys. When it is AltGr, Qt will get AltGr as GroupSwitchModifier. When it is not AltGr, another key like Less/Greaterkey(details in bug report), GroupSwitchModifier will not be set in the case. Fixes: QTBUG-36565 Pick-to: 5.15 6.0 6.1 Change-Id: I7251963d41a70d61800d25e43d5012b859693f69 Reviewed-by: Liang Qi <liang.qi@qt.io> Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
This commit is contained in:
parent
c4b5e84e9e
commit
4b0b87b5c2
@ -1282,7 +1282,7 @@ void QWidgetTextControlPrivate::keyPressEvent(QKeyEvent *e)
|
|||||||
// example)
|
// example)
|
||||||
repaintSelection();
|
repaintSelection();
|
||||||
|
|
||||||
if (e->key() == Qt::Key_Backspace && !(e->modifiers() & ~Qt::ShiftModifier)) {
|
if (e->key() == Qt::Key_Backspace && !(e->modifiers() & ~(Qt::ShiftModifier | Qt::GroupSwitchModifier))) {
|
||||||
QTextBlockFormat blockFmt = cursor.blockFormat();
|
QTextBlockFormat blockFmt = cursor.blockFormat();
|
||||||
QTextList *list = cursor.currentList();
|
QTextList *list = cursor.currentList();
|
||||||
if (list && cursor.atBlockStart() && !cursor.hasSelection()) {
|
if (list && cursor.atBlockStart() && !cursor.hasSelection()) {
|
||||||
|
Loading…
Reference in New Issue
Block a user