diff --git a/Telegram/SourceFiles/boxes/create_poll_box.cpp b/Telegram/SourceFiles/boxes/create_poll_box.cpp index fcd3a9a616..8ab638bf8a 100644 --- a/Telegram/SourceFiles/boxes/create_poll_box.cpp +++ b/Telegram/SourceFiles/boxes/create_poll_box.cpp @@ -184,6 +184,7 @@ Options::Option Options::Option::Create( object_ptr( container, st::createPollOptionField, + Ui::InputField::Mode::NoNewlines, langFactory(lng_polls_create_option_add)))); InitField(outer, field->entity()); field->entity()->setMaxLength(kOptionLimit + kErrorLimit); diff --git a/Telegram/SourceFiles/ui/widgets/input_fields.cpp b/Telegram/SourceFiles/ui/widgets/input_fields.cpp index cd94847a18..0ae15328c8 100644 --- a/Telegram/SourceFiles/ui/widgets/input_fields.cpp +++ b/Telegram/SourceFiles/ui/widgets/input_fields.cpp @@ -2014,8 +2014,8 @@ void InputField::processFormatting(int insertPosition, int insertEnd) { auto *ch = textStart + qMax(changedPositionInFragment, 0); for (; ch < textEnd; ++ch) { - const auto removeNewline = (_mode == Mode::SingleLine) - && (IsNewline(*ch)); + const auto removeNewline = (_mode != Mode::MultiLine) + && IsNewline(*ch); if (removeNewline) { if (action.type == ActionType::Invalid) { action.type = ActionType::RemoveNewline; @@ -2077,7 +2077,7 @@ void InputField::processFormatting(int insertPosition, int insertEnd) { } if (action.type != ActionType::Invalid) { break; - } else if (_mode == Mode::SingleLine + } else if (_mode != Mode::MultiLine && block.next() != document->end()) { action.type = ActionType::RemoveNewline; action.intervalStart = block.next().position() - 1; @@ -2582,7 +2582,7 @@ void InputField::keyPressEventInner(QKeyEvent *e) { bool shift = e->modifiers().testFlag(Qt::ShiftModifier), alt = e->modifiers().testFlag(Qt::AltModifier); bool macmeta = (cPlatform() == dbipMac || cPlatform() == dbipMacOld) && e->modifiers().testFlag(Qt::ControlModifier) && !e->modifiers().testFlag(Qt::MetaModifier) && !e->modifiers().testFlag(Qt::AltModifier); bool ctrl = e->modifiers().testFlag(Qt::ControlModifier) || e->modifiers().testFlag(Qt::MetaModifier); - bool enterSubmit = (_mode == Mode::SingleLine) + bool enterSubmit = (_mode != Mode::MultiLine) || ShouldSubmit(_submitSettings, e->modifiers()); bool enter = (e->key() == Qt::Key_Enter || e->key() == Qt::Key_Return); if (e->key() == Qt::Key_Left diff --git a/Telegram/SourceFiles/ui/widgets/input_fields.h b/Telegram/SourceFiles/ui/widgets/input_fields.h index 29d1586f6a..72b8723589 100644 --- a/Telegram/SourceFiles/ui/widgets/input_fields.h +++ b/Telegram/SourceFiles/ui/widgets/input_fields.h @@ -131,6 +131,7 @@ class InputField : public RpWidget, private base::Subscriber { public: enum class Mode { SingleLine, + NoNewlines, MultiLine, }; using TagList = TextWithTags::Tags;