diff --git a/Telegram/SourceFiles/settings/settings_chat.cpp b/Telegram/SourceFiles/settings/settings_chat.cpp index c257a1ba8..9434d6499 100644 --- a/Telegram/SourceFiles/settings/settings_chat.cpp +++ b/Telegram/SourceFiles/settings/settings_chat.cpp @@ -34,6 +34,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "window/themes/window_themes_embedded.h" #include "window/themes/window_theme_editor_box.h" #include "window/themes/window_themes_cloud_list.h" +#include "window/window_adaptive.h" #include "window/window_session_controller.h" #include "window/window_controller.h" #include "storage/localstorage.h" @@ -967,19 +968,15 @@ void SetupChatBackground( tile->setChecked(tiled); }, tile->lifetime()); - adaptive->toggleOn(rpl::single( - rpl::empty_value() - ) | rpl::then(base::ObservableViewer( - Adaptive::Changed() - )) | rpl::map([] { - return (Global::AdaptiveChatLayout() == Adaptive::ChatLayout::Wide); + adaptive->toggleOn(controller->adaptive().chatLayoutValue( + ) | rpl::map([](Window::AdaptiveModern::ChatLayout layout) { + return (layout == Window::AdaptiveModern::ChatLayout::Wide); })); adaptive->entity()->checkedChanges( ) | rpl::start_with_next([=](bool checked) { Core::App().settings().setAdaptiveForWide(checked); Core::App().saveSettingsDelayed(); - Adaptive::Changed().notify(); }, adaptive->lifetime()); } diff --git a/Telegram/SourceFiles/window/window_adaptive.cpp b/Telegram/SourceFiles/window/window_adaptive.cpp index cc0f9b659..c3932066e 100644 --- a/Telegram/SourceFiles/window/window_adaptive.cpp +++ b/Telegram/SourceFiles/window/window_adaptive.cpp @@ -36,6 +36,10 @@ rpl::producer AdaptiveModern::oneColumnValue() const { }); } +rpl::producer AdaptiveModern::chatLayoutValue() const { + return _chatLayout.value(); +} + bool AdaptiveModern::isOneColumn() const { return _layout.current() == WindowLayout::OneColumn; } diff --git a/Telegram/SourceFiles/window/window_adaptive.h b/Telegram/SourceFiles/window/window_adaptive.h index 163eb80c2..d27980e8f 100644 --- a/Telegram/SourceFiles/window/window_adaptive.h +++ b/Telegram/SourceFiles/window/window_adaptive.h @@ -29,6 +29,7 @@ public: [[nodiscard]] rpl::producer<> changed() const; [[nodiscard]] rpl::producer oneColumnValue() const; + [[nodiscard]] rpl::producer chatLayoutValue() const; [[nodiscard]] bool isOneColumn() const; [[nodiscard]] bool isNormal() const;