From ab84fb8ec28dee52d576402bf8997c755d51f013 Mon Sep 17 00:00:00 2001 From: 23rd <23rd@vivaldi.net> Date: Wed, 13 May 2026 16:05:36 +0300 Subject: [PATCH] Wrapped NSSlider in NSCustomTouchBarItem to silence AppKit warning. --- .../mac/touchbar/mac_touchbar_controls.h | 3 +-- .../mac/touchbar/mac_touchbar_controls.mm | 24 ++++++++++--------- 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/Telegram/SourceFiles/platform/mac/touchbar/mac_touchbar_controls.h b/Telegram/SourceFiles/platform/mac/touchbar/mac_touchbar_controls.h index 1cc8c832f4..0df4a61368 100644 --- a/Telegram/SourceFiles/platform/mac/touchbar/mac_touchbar_controls.h +++ b/Telegram/SourceFiles/platform/mac/touchbar/mac_touchbar_controls.h @@ -16,7 +16,6 @@ struct TrackState; @class NSButton; @class NSCustomTouchBarItem; @class NSImage; -@class NSSliderTouchBarItem; namespace TouchBar { @@ -51,7 +50,7 @@ NSButton *CreateTouchBarButtonWithTwoStates( rpl::producer stateChanged = rpl::never()); [[nodiscard]] API_AVAILABLE(macos(10.12.2)) -NSSliderTouchBarItem *CreateTouchBarSlider( +NSCustomTouchBarItem *CreateTouchBarSlider( NSString *itemId, rpl::lifetime &lifetime, Fn callback, diff --git a/Telegram/SourceFiles/platform/mac/touchbar/mac_touchbar_controls.mm b/Telegram/SourceFiles/platform/mac/touchbar/mac_touchbar_controls.mm index 48f97145c9..fe384385e1 100644 --- a/Telegram/SourceFiles/platform/mac/touchbar/mac_touchbar_controls.mm +++ b/Telegram/SourceFiles/platform/mac/touchbar/mac_touchbar_controls.mm @@ -18,7 +18,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #import #import #import -#import using namespace TouchBar; @@ -208,17 +207,21 @@ NSButton *CreateTouchBarButtonWithTwoStates( std::move(stateChanged)); } -NSSliderTouchBarItem *CreateTouchBarSlider( +NSCustomTouchBarItem *CreateTouchBarSlider( NSString *itemId, rpl::lifetime &lifetime, Fn callback, rpl::producer stateChanged) { const auto lastDurationMs = lifetime.make_state(0); - auto *seekBar = [[NSSliderTouchBarItem alloc] initWithIdentifier:itemId]; - seekBar.slider.minValue = 0.0f; - seekBar.slider.maxValue = 1.0f; - seekBar.customizationLabel = @"Seek Bar"; + auto *item = [[NSCustomTouchBarItem alloc] initWithIdentifier:itemId]; + item.customizationLabel = @"Seek Bar"; + + auto *slider = [NSSlider sliderWithTarget:nil action:nil]; + slider.minValue = 0.0f; + slider.maxValue = 1.0f; + slider.continuous = YES; + item.view = slider; id block = [^{ // https://stackoverflow.com/a/45891017 @@ -227,7 +230,7 @@ NSSliderTouchBarItem *CreateTouchBarSlider( touchesMatchingPhase:NSTouchPhaseEnded inView:nil].count > 0; Core::Sandbox::Instance().customEnterFromEventLoop([=] { - callback(touchUp, seekBar.slider.doubleValue, *lastDurationMs); + callback(touchUp, slider.doubleValue, *lastDurationMs); }); } copy]; @@ -236,7 +239,6 @@ NSSliderTouchBarItem *CreateTouchBarSlider( ) | rpl::on_next([=](const Media::Player::TrackState &state) { const auto stop = Media::Player::IsStoppedOrStopping(state.state); const auto duration = double(stop ? 0 : state.length); - auto slider = seekBar.slider; if (duration <= 0) { slider.enabled = false; slider.doubleValue = 0; @@ -252,13 +254,13 @@ NSSliderTouchBarItem *CreateTouchBarSlider( } }, lifetime); - seekBar.target = block; - seekBar.action = @selector(invoke); + slider.target = block; + slider.action = @selector(invoke); lifetime.add([=] { [block release]; }); - return seekBar; + return item; } NSCustomTouchBarItem *CreateTouchBarTrackPosition(