Fixed handle of last message on Up arrow in sections with key modifiers.

This commit is contained in:
23rd 2021-05-18 21:05:46 +03:00
parent bfb03621c2
commit 2599ae45d6

View file

@ -1083,20 +1083,22 @@ void ComposeControls::initKeyHandler() {
auto keyEvent = static_cast<QKeyEvent*>(e.get()); auto keyEvent = static_cast<QKeyEvent*>(e.get());
const auto key = keyEvent->key(); const auto key = keyEvent->key();
const auto isCtrl = keyEvent->modifiers() == Qt::ControlModifier; const auto isCtrl = keyEvent->modifiers() == Qt::ControlModifier;
const auto hasModifiers = keyEvent->modifiers() != Qt::NoModifier;
if (key == Qt::Key_O && isCtrl) { if (key == Qt::Key_O && isCtrl) {
_attachRequests.fire({}); _attachRequests.fire({});
return; return;
} }
if (key == Qt::Key_Up) { if (key == Qt::Key_Up && !hasModifiers) {
if (!isEditingMessage()) { if (!isEditingMessage()) {
_editLastMessageRequests.fire(std::move(keyEvent)); _editLastMessageRequests.fire(std::move(keyEvent));
return; return;
} }
} }
if ((key == Qt::Key_Up) if (!hasModifiers
|| (key == Qt::Key_Down) && ((key == Qt::Key_Up)
|| (key == Qt::Key_PageUp) || (key == Qt::Key_Down)
|| (key == Qt::Key_PageDown)) { || (key == Qt::Key_PageUp)
|| (key == Qt::Key_PageDown))) {
_scrollKeyEvents.fire(std::move(keyEvent)); _scrollKeyEvents.fire(std::move(keyEvent));
} }
}, _wrap->lifetime()); }, _wrap->lifetime());