diff --git a/Telegram/SourceFiles/window/window_title_qt.cpp b/Telegram/SourceFiles/window/window_title_qt.cpp index 6d89f14a4..83e58a163 100644 --- a/Telegram/SourceFiles/window/window_title_qt.cpp +++ b/Telegram/SourceFiles/window/window_title_qt.cpp @@ -27,6 +27,16 @@ namespace { return st::callShadow.extend; } +template +void RemoveDuplicates(std::vector &v) { + auto end = v.end(); + for (auto it = v.begin(); it != end; ++it) { + end = std::remove(it + 1, end, *it); + } + + v.erase(end, v.end()); +} + } // namespace TitleWidgetQt::TitleWidgetQt(QWidget *parent) @@ -181,10 +191,12 @@ void TitleWidgetQt::updateControlsPosition() { void TitleWidgetQt::updateControlsPositionBySide( const std::vector &controls, bool right) { - const auto preparedControls = right + auto preparedControls = right ? (ranges::view::reverse(controls) | ranges::to_vector) : controls; + RemoveDuplicates(preparedControls); + auto position = 0; for (const auto &control : preparedControls) { const auto widget = controlWidget(control);