From ad334fe450a9d60026bc2dc03d2eb728aa4bb4fd Mon Sep 17 00:00:00 2001 From: John Preston Date: Wed, 10 Mar 2021 19:33:12 +0400 Subject: [PATCH] Force all title controls on one side. --- ui/platform/ui_platform_window_title.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/ui/platform/ui_platform_window_title.cpp b/ui/platform/ui_platform_window_title.cpp index 1079cfc..13ad03d 100644 --- a/ui/platform/ui_platform_window_title.cpp +++ b/ui/platform/ui_platform_window_title.cpp @@ -170,6 +170,23 @@ void TitleControls::updateControlsPosition() { const auto controlsLayout = TitleControlsLayout(); auto controlsLeft = controlsLayout.left; auto controlsRight = controlsLayout.right; + const auto moveFromTo = [&](auto &from, auto &to) { + for (const auto control : from) { + if (!ranges::contains(to, control)) { + to.push_back(control); + } + } + from.clear(); + }; + if (ranges::contains(controlsLeft, Control::Close)) { + moveFromTo(controlsRight, controlsLeft); + } else if (ranges::contains(controlsRight, Control::Close)) { + moveFromTo(controlsLeft, controlsRight); + } else if (controlsLeft.size() > controlsRight.size()) { + moveFromTo(controlsRight, controlsLeft); + } else { + moveFromTo(controlsLeft, controlsRight); + } const auto controlPresent = [&](Control control) { return ranges::contains(controlsLeft, control)