From d98c3d539b0eb7c00f664c445ab4194c28e8cef7 Mon Sep 17 00:00:00 2001 From: John Preston Date: Tue, 15 Mar 2022 19:40:38 +0400 Subject: [PATCH] Allow moving window controls vertically. --- ui/platform/ui_platform_window_title.cpp | 10 ++++++---- ui/platform/ui_platform_window_title.h | 3 ++- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/ui/platform/ui_platform_window_title.cpp b/ui/platform/ui_platform_window_title.cpp index 015b5bc..420e198 100644 --- a/ui/platform/ui_platform_window_title.cpp +++ b/ui/platform/ui_platform_window_title.cpp @@ -481,7 +481,8 @@ SeparateTitleControls::SeparateTitleControls( std::unique_ptr SetupSeparateTitleControls( not_null window, const style::WindowTitle &st, - Fn maximize) { + Fn maximize, + rpl::producer controlsTop) { auto result = std::make_unique( window->body(), st, @@ -491,11 +492,12 @@ std::unique_ptr SetupSeparateTitleControls( auto &lifetime = raw->wrap.lifetime(); rpl::combine( window->body()->widthValue(), - window->additionalContentPaddingValue() - ) | rpl::start_with_next([=](int width, int padding) { + window->additionalContentPaddingValue(), + controlsTop ? std::move(controlsTop) : rpl::single(0) + ) | rpl::start_with_next([=](int width, int padding, int top) { raw->wrap.setGeometry( padding, - 0, + top, width - 2 * padding, raw->controls.geometry().height()); }, lifetime); diff --git a/ui/platform/ui_platform_window_title.h b/ui/platform/ui_platform_window_title.h index e61b37d..863171e 100644 --- a/ui/platform/ui_platform_window_title.h +++ b/ui/platform/ui_platform_window_title.h @@ -150,7 +150,8 @@ struct SeparateTitleControls { [[nodiscard]] auto SetupSeparateTitleControls( not_null window, const style::WindowTitle &st, - Fn maximize = nullptr) + Fn maximize = nullptr, + rpl::producer controlsTop = nullptr) -> std::unique_ptr; } // namespace Platform