diff --git a/Telegram/SourceFiles/core/kotato_settings.cpp b/Telegram/SourceFiles/core/kotato_settings.cpp index 6a0e8fbd9..d5da1f418 100644 --- a/Telegram/SourceFiles/core/kotato_settings.cpp +++ b/Telegram/SourceFiles/core/kotato_settings.cpp @@ -225,6 +225,11 @@ bool Manager::readCustomFile() { SetDialogListLines(settingsChatListLines); } } + + const auto settingsDisableUpEditIt = settings.constFind(qsl("disable_up_edit")); + if (settingsDisableUpEditIt != settings.constEnd() && (*settingsDisableUpEditIt).isBool()) { + cSetDisableUpEdit((*settingsDisableUpEditIt).toBool()); + } return true; } @@ -260,6 +265,7 @@ void Manager::writeDefaultFile() { settings.insert(qsl("net_speed_boost"), QJsonValue(QJsonValue::Null)); settings.insert(qsl("show_phone_in_drawer"), cShowPhoneInDrawer()); settings.insert(qsl("chat_list_lines"), DialogListLines()); + settings.insert(qsl("disable_up_edit"), cDisableUpEdit()); auto settingsScales = QJsonArray(); settings.insert(qsl("scales"), settingsScales); @@ -313,6 +319,7 @@ void Manager::writeCurrentSettings() { settings.insert(qsl("net_speed_boost"), cNetSpeedBoost()); settings.insert(qsl("show_phone_in_drawer"), cShowPhoneInDrawer()); settings.insert(qsl("chat_list_lines"), DialogListLines()); + settings.insert(qsl("disable_up_edit"), cDisableUpEdit()); auto settingsScales = QJsonArray(); auto currentScales = cInterfaceScales(); diff --git a/Telegram/SourceFiles/history/history_widget.cpp b/Telegram/SourceFiles/history/history_widget.cpp index e32f90974..efb06c261 100644 --- a/Telegram/SourceFiles/history/history_widget.cpp +++ b/Telegram/SourceFiles/history/history_widget.cpp @@ -5523,16 +5523,18 @@ void HistoryWidget::keyPressEvent(QKeyEvent *e) { } else if (e->key() == Qt::Key_Down && !commonModifiers) { _scroll->keyPressEvent(e); } else if (e->key() == Qt::Key_Up && !commonModifiers) { - const auto item = _history - ? _history->lastSentMessage() - : nullptr; - if (item - && item->allowsEdit(base::unixtime::now()) - && _field->empty() - && !_editMsgId - && !_replyToId) { - editMessage(item); - return; + if (!cDisableUpEdit()) { + const auto item = _history + ? _history->lastSentMessage() + : nullptr; + if (item + && item->allowsEdit(base::unixtime::now()) + && _field->empty() + && !_editMsgId + && !_replyToId) { + editMessage(item); + return; + } } _scroll->keyPressEvent(e); } else if (e->key() == Qt::Key_Return || e->key() == Qt::Key_Enter) { diff --git a/Telegram/SourceFiles/settings.cpp b/Telegram/SourceFiles/settings.cpp index cf518f9c1..f841a59f3 100644 --- a/Telegram/SourceFiles/settings.cpp +++ b/Telegram/SourceFiles/settings.cpp @@ -271,3 +271,5 @@ int DialogListLines() { rpl::producer DialogListLinesChanges() { return gDialogListLines.changes(); } + +bool gDisableUpEdit = false; \ No newline at end of file diff --git a/Telegram/SourceFiles/settings.h b/Telegram/SourceFiles/settings.h index 5dca583d4..fd6fa8f2f 100644 --- a/Telegram/SourceFiles/settings.h +++ b/Telegram/SourceFiles/settings.h @@ -226,3 +226,5 @@ void ClearCustomScales(); void SetDialogListLines(int lines); [[nodiscard]] int DialogListLines(); [[nodiscard]] rpl::producer DialogListLinesChanges(); + +DeclareSetting(bool, DisableUpEdit);