[vlc-commits] [Git][videolan/vlc][master] macos: make playback time labels button-backed
Felix Paul Kühne (@fkuehne)
gitlab at videolan.org
Thu Jul 2 12:55:03 UTC 2026
Felix Paul Kühne pushed to branch master at VideoLAN / VLC
Commits:
f4fa30dc by Serhii Bykov at 2026-07-02T14:21:23+02:00
macos: make playback time labels button-backed
- - - - -
7 changed files:
- modules/gui/macosx/UI/VLCClassicMainVideoView.xib
- modules/gui/macosx/UI/VLCDetachedAudioWindow.xib
- modules/gui/macosx/UI/VLCFullScreenPanel.xib
- modules/gui/macosx/UI/VLCLibraryWindow.xib
- modules/gui/macosx/UI/VLCMainVideoView.xib
- modules/gui/macosx/views/VLCTimeField.h
- modules/gui/macosx/views/VLCTimeField.m
Changes:
=====================================
modules/gui/macosx/UI/VLCClassicMainVideoView.xib
=====================================
@@ -221,17 +221,16 @@
<stackView distribution="fill" orientation="horizontal" alignment="centerY" horizontalStackHuggingPriority="249.99998474121094" verticalStackHuggingPriority="249.99998474121094" detachesHiddenViews="YES" translatesAutoresizingMaskIntoConstraints="NO" id="r0b-Xe-LxM">
<rect key="frame" x="268" y="12" width="468" height="14"/>
<subviews>
- <textField wantsLayer="YES" focusRingType="none" horizontalHuggingPriority="1000" verticalHuggingPriority="1000" horizontalCompressionResistancePriority="751" translatesAutoresizingMaskIntoConstraints="NO" id="6Bn-cR-4m1" customClass="VLCTimeField">
+ <button wantsLayer="YES" focusRingType="none" horizontalHuggingPriority="1000" verticalHuggingPriority="1000" horizontalCompressionResistancePriority="751" translatesAutoresizingMaskIntoConstraints="NO" id="6Bn-cR-4m1" customClass="VLCTimeField">
<rect key="frame" x="-2" y="0.0" width="79" height="14"/>
<constraints>
<constraint firstAttribute="width" constant="75" id="bmu-4m-sw8"/>
</constraints>
- <textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" allowsUndo="NO" sendsActionOnEndEditing="YES" alignment="right" placeholderString="0:00" id="nPG-7X-HEG">
+ <buttonCell key="cell" type="push" title="0:00" bezelStyle="regularSquare" imagePosition="overlaps" alignment="right" controlSize="small" borderStyle="border" inset="2" id="nPG-7X-HEG">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
- <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
- </textFieldCell>
- </textField>
+ </buttonCell>
+ </button>
<slider verticalHuggingPriority="1000" horizontalCompressionResistancePriority="250" verticalCompressionResistancePriority="751" translatesAutoresizingMaskIntoConstraints="NO" id="YQG-rd-w0w" customClass="VLCPlaybackProgressSlider">
<rect key="frame" x="83" y="0.0" width="302" height="14"/>
<sliderCell key="cell" controlSize="small" continuous="YES" state="on" alignment="left" maxValue="1" tickMarkPosition="above" sliderType="linear" id="hmW-vO-cJs" customClass="VLCPlaybackProgressSliderCell"/>
@@ -239,17 +238,16 @@
<action selector="timeSliderAction:" target="3" id="G20-RN-DbG"/>
</connections>
</slider>
- <textField wantsLayer="YES" focusRingType="none" horizontalHuggingPriority="1000" verticalHuggingPriority="1000" horizontalCompressionResistancePriority="751" translatesAutoresizingMaskIntoConstraints="NO" id="3SA-Ee-NRs" customClass="VLCTimeField">
+ <button wantsLayer="YES" focusRingType="none" horizontalHuggingPriority="1000" verticalHuggingPriority="1000" horizontalCompressionResistancePriority="751" translatesAutoresizingMaskIntoConstraints="NO" id="3SA-Ee-NRs" customClass="VLCTimeField">
<rect key="frame" x="391" y="0.0" width="79" height="14"/>
<constraints>
<constraint firstAttribute="width" constant="75" id="gtl-d1-bUT"/>
</constraints>
- <textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" allowsUndo="NO" sendsActionOnEndEditing="YES" alignment="left" placeholderString="0:00" usesSingleLineMode="YES" id="8WT-Uq-1VQ">
+ <buttonCell key="cell" type="push" title="0:00" bezelStyle="regularSquare" imagePosition="overlaps" alignment="left" controlSize="small" borderStyle="border" inset="2" id="8WT-Uq-1VQ">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
- <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
- </textFieldCell>
- </textField>
+ </buttonCell>
+ </button>
</subviews>
<visibilityPriorities>
<integer value="1000"/>
=====================================
modules/gui/macosx/UI/VLCDetachedAudioWindow.xib
=====================================
@@ -151,7 +151,7 @@
<action selector="timeSliderAction:" target="3" id="46"/>
</connections>
</slider>
- <textField focusRingType="none" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="9" customClass="VLCTimeField">
+ <button focusRingType="none" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="9" customClass="VLCTimeField">
<rect key="frame" x="446" y="34" width="46" height="13"/>
<constraints>
<constraint firstAttribute="width" relation="greaterThanOrEqual" constant="42" id="EvZ-Sy-m25"/>
@@ -160,12 +160,11 @@
<shadow key="shadow" blurRadius="1">
<color key="color" white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
</shadow>
- <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" state="on" alignment="center" title="00:00" id="16">
+ <buttonCell key="cell" type="push" title="00:00" bezelStyle="regularSquare" imagePosition="overlaps" alignment="center" borderStyle="border" inset="2" id="16">
<font key="font" metaFont="systemBold" size="10"/>
<color key="textColor" name="secondaryLabelColor" catalog="System" colorSpace="catalog"/>
- <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
- </textFieldCell>
- </textField>
+ </buttonCell>
+ </button>
<stackView distribution="fill" orientation="horizontal" alignment="centerY" spacing="5" horizontalStackHuggingPriority="249.99998474121094" verticalStackHuggingPriority="249.99998474121094" detachesHiddenViews="YES" translatesAutoresizingMaskIntoConstraints="NO" id="xR4-jH-evo">
<rect key="frame" x="373" y="10" width="117" height="32"/>
<subviews>
=====================================
modules/gui/macosx/UI/VLCFullScreenPanel.xib
=====================================
@@ -37,28 +37,26 @@
<rect key="frame" x="0.0" y="0.0" width="483" height="84"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
- <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="nJc-M4-sMF" customClass="VLCTimeField">
+ <button horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="nJc-M4-sMF" customClass="VLCTimeField">
<rect key="frame" x="18" y="61" width="79" height="14"/>
<constraints>
<constraint firstAttribute="width" constant="75" id="IGO-bJ-xu2"/>
</constraints>
- <textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" allowsUndo="NO" sendsActionOnEndEditing="YES" alignment="left" title="0:00" id="ebb-BZ-1l4">
+ <buttonCell key="cell" type="push" title="0:00" bezelStyle="regularSquare" imagePosition="overlaps" alignment="left" controlSize="small" borderStyle="border" inset="2" id="ebb-BZ-1l4">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
- <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
- </textFieldCell>
- </textField>
- <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="T3x-es-c7v" customClass="VLCTimeField">
+ </buttonCell>
+ </button>
+ <button horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="T3x-es-c7v" customClass="VLCTimeField">
<rect key="frame" x="386" y="61" width="79" height="14"/>
<constraints>
<constraint firstAttribute="width" constant="75" id="m9r-7l-uQt"/>
</constraints>
- <textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" allowsUndo="NO" sendsActionOnEndEditing="YES" alignment="right" placeholderString="∞" id="PYh-Xz-irE">
+ <buttonCell key="cell" type="push" title="∞" bezelStyle="regularSquare" imagePosition="overlaps" alignment="right" controlSize="small" borderStyle="border" inset="2" id="PYh-Xz-irE">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
- <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
- </textFieldCell>
- </textField>
+ </buttonCell>
+ </button>
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="Vd8-0f-Usz">
<rect key="frame" x="98" y="61" width="287" height="14"/>
<textFieldCell key="cell" controlSize="small" lineBreakMode="truncatingTail" allowsUndo="NO" sendsActionOnEndEditing="YES" alignment="center" placeholderString="Nothing Playing" usesSingleLineMode="YES" id="uA0-hc-yIU">
=====================================
modules/gui/macosx/UI/VLCLibraryWindow.xib
=====================================
@@ -152,17 +152,16 @@
<real value="3.4028234663852886e+38"/>
</customSpacing>
</stackView>
- <textField wantsLayer="YES" focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="zOB-QJ-TUy" customClass="VLCTimeField">
+ <button wantsLayer="YES" focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="zOB-QJ-TUy" customClass="VLCTimeField">
<rect key="frame" x="42" y="3" width="44" height="11"/>
<constraints>
<constraint firstAttribute="width" constant="40" id="Rox-Cf-MSz"/>
</constraints>
- <textFieldCell key="cell" lineBreakMode="clipping" alignment="right" title="00:00" id="q8L-S3-Ylc">
+ <buttonCell key="cell" type="push" title="00:00" bezelStyle="regularSquare" imagePosition="overlaps" alignment="right" borderStyle="border" inset="2" id="q8L-S3-Ylc">
<font key="font" metaFont="miniSystem"/>
<color key="textColor" name="secondaryLabelColor" catalog="System" colorSpace="catalog"/>
- <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
- </textFieldCell>
- </textField>
+ </buttonCell>
+ </button>
<customView translatesAutoresizingMaskIntoConstraints="NO" id="SM6-nx-NKD" customClass="VLCTrackingView">
<rect key="frame" x="0.0" y="0.0" width="40" height="40"/>
<subviews>
@@ -228,17 +227,16 @@
<action selector="timeSliderAction:" target="Uzf-Tf-H8x" id="eDh-39-Ej1"/>
</connections>
</slider>
- <textField wantsLayer="YES" focusRingType="none" verticalHuggingPriority="750" ambiguous="YES" translatesAutoresizingMaskIntoConstraints="NO" id="oGd-mG-cFw" customClass="VLCTimeField">
+ <button wantsLayer="YES" focusRingType="none" verticalHuggingPriority="750" ambiguous="YES" translatesAutoresizingMaskIntoConstraints="NO" id="oGd-mG-cFw" customClass="VLCTimeField">
<rect key="frame" x="326" y="3" width="52" height="11"/>
<constraints>
<constraint firstAttribute="width" constant="48" id="mAg-xF-yHo"/>
</constraints>
- <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" state="on" alignment="left" title="-00:00" id="adD-oG-KsD">
+ <buttonCell key="cell" type="push" title="-00:00" bezelStyle="regularSquare" imagePosition="overlaps" alignment="left" borderStyle="border" inset="2" id="adD-oG-KsD">
<font key="font" metaFont="miniSystem"/>
<color key="textColor" name="secondaryLabelColor" catalog="System" colorSpace="catalog"/>
- <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
- </textFieldCell>
- </textField>
+ </buttonCell>
+ </button>
</subviews>
<constraints>
<constraint firstAttribute="trailing" secondItem="oGd-mG-cFw" secondAttribute="trailing" id="25y-hg-Obr"/>
=====================================
modules/gui/macosx/UI/VLCMainVideoView.xib
=====================================
@@ -98,17 +98,16 @@
<customView translatesAutoresizingMaskIntoConstraints="NO" id="1GA-GG-Sdx">
<rect key="frame" x="0.0" y="0.0" width="749" height="132"/>
<subviews>
- <textField wantsLayer="YES" focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="f4v-2z-dQ1" customClass="VLCTimeField">
+ <button wantsLayer="YES" focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="f4v-2z-dQ1" customClass="VLCTimeField">
<rect key="frame" x="652" y="20" width="79" height="14"/>
<constraints>
<constraint firstAttribute="width" constant="75" id="8Zz-X6-yY1"/>
</constraints>
- <textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" allowsUndo="NO" sendsActionOnEndEditing="YES" alignment="right" placeholderString="0:00" id="FlV-4J-8Jc">
+ <buttonCell key="cell" type="push" title="0:00" bezelStyle="regularSquare" imagePosition="overlaps" alignment="right" controlSize="small" borderStyle="border" inset="2" id="FlV-4J-8Jc">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
- <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
- </textFieldCell>
- </textField>
+ </buttonCell>
+ </button>
<stackView distribution="fill" orientation="vertical" alignment="leading" spacing="4" horizontalStackHuggingPriority="249.99998474121094" verticalStackHuggingPriority="249.99998474121094" detachesHiddenViews="YES" translatesAutoresizingMaskIntoConstraints="NO" id="San-L7-ZvB">
<rect key="frame" x="20" y="59" width="167" height="53"/>
<subviews>
@@ -330,17 +329,16 @@
<real value="3.4028234663852886e+38"/>
</customSpacing>
</stackView>
- <textField wantsLayer="YES" focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="3ri-8b-8mw" customClass="VLCTimeField">
+ <button wantsLayer="YES" focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="3ri-8b-8mw" customClass="VLCTimeField">
<rect key="frame" x="18" y="20" width="79" height="14"/>
<constraints>
<constraint firstAttribute="width" constant="75" id="S9v-aM-nfL"/>
</constraints>
- <textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" allowsUndo="NO" sendsActionOnEndEditing="YES" alignment="left" placeholderString="0:00" usesSingleLineMode="YES" id="0ya-Dd-ecT">
+ <buttonCell key="cell" type="push" title="0:00" bezelStyle="regularSquare" imagePosition="overlaps" alignment="left" controlSize="small" borderStyle="border" inset="2" id="0ya-Dd-ecT">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
- <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
- </textFieldCell>
- </textField>
+ </buttonCell>
+ </button>
</subviews>
<constraints>
<constraint firstItem="f4v-2z-dQ1" firstAttribute="trailing" secondItem="qNZ-Fh-W8i" secondAttribute="trailing" id="0DA-7x-5iR"/>
=====================================
modules/gui/macosx/views/VLCTimeField.h
=====================================
@@ -1,11 +1,12 @@
/*****************************************************************************
- * VLCTimeField.h: NSTextField subclass for playback time fields
+ * VLCTimeField.h: NSButton subclass for playback time fields
*****************************************************************************
* Copyright (C) 2003-2017 VLC authors and VideoLAN
*
* Authors: Jon Lech Johansen <jon-vl at nanocrew.net>
* Felix Paul Kühne <fkuehne at videolan dot org>
* Marvin Scholz <epirat07 at gmail dot com>
+ * Serhii Bykov <esphynox at gmail.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -33,7 +34,7 @@
extern NSString * const VLCTimeFieldDisplayTimeAsElapsed;
extern NSString * const VLCTimeFieldDisplayTimeAsRemaining;
- at interface VLCTimeField : NSTextField
+ at interface VLCTimeField : NSButton
@property (readwrite, assign, nonatomic) NSString *preferencesIdentifier;
@property (readwrite, assign, nonatomic) BOOL isTimeRemaining;
=====================================
modules/gui/macosx/views/VLCTimeField.m
=====================================
@@ -1,5 +1,5 @@
/*****************************************************************************
- * VLCTimeField.m: NSTextField subclass for playback time fields
+ * VLCTimeField.m: NSButton subclass for playback time fields
*****************************************************************************
* Copyright (C) 2003-2017 VLC authors and VideoLAN
*
@@ -7,6 +7,7 @@
* Felix Paul Kühne <fkuehne at videolan dot org>
* Marvin Scholz <epirat07 at gmail dot com>
* Claudio Cambra <developer at claudiocambra dot com>
+ * Serhii Bykov <esphynox at gmail.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -35,6 +36,8 @@ NSString * const VLCTimeFieldDisplayTimeAsRemaining = @"DisplayTimeAsTimeRemaini
{
NSString *_cachedTime;
NSString *_remainingTime;
+ NSFont *_titleFont;
+ NSColor *_titleColor;
}
@end
@@ -46,6 +49,51 @@ NSString * const VLCTimeFieldDisplayTimeAsRemaining = @"DisplayTimeAsTimeRemaini
[NSUserDefaults.standardUserDefaults registerDefaults:appDefaults];
}
+- (instancetype)initWithFrame:(NSRect)frameRect
+{
+ self = [super initWithFrame:frameRect];
+ if (self) {
+ [self setup];
+ }
+ return self;
+}
+
+- (instancetype)initWithCoder:(NSCoder *)coder
+{
+ self = [super initWithCoder:coder];
+ if (self) {
+ [self setup];
+ }
+ return self;
+}
+
+- (void)setup
+{
+ NSDictionary<NSAttributedStringKey, id> * const initialAttributes =
+ self.attributedTitle.length > 0 ? [self.attributedTitle attributesAtIndex:0 effectiveRange:nil] : nil;
+ _titleFont = initialAttributes[NSFontAttributeName] ?: self.cell.font;
+ _titleColor = initialAttributes[NSForegroundColorAttributeName] ?: NSColor.labelColor;
+
+ self.bordered = NO;
+ [self setButtonType:NSButtonTypeMomentaryChange];
+ self.bezelStyle = NSBezelStyleRegularSquare;
+ self.focusRingType = NSFocusRingTypeNone;
+ self.imagePosition = NSNoImage;
+ self.cell.lineBreakMode = NSLineBreakByClipping;
+ self.title = @"";
+ [self updateDisplayedTitle];
+}
+
+- (BOOL)acceptsFirstMouse:(NSEvent *)event
+{
+ return YES;
+}
+
+- (BOOL)mouseDownCanMoveWindow
+{
+ return NO;
+}
+
- (void)setPreferencesIdentifier:(NSString *)preferencesIdentifier
{
_preferencesIdentifier = preferencesIdentifier;
@@ -62,19 +110,27 @@ NSString * const VLCTimeFieldDisplayTimeAsRemaining = @"DisplayTimeAsTimeRemaini
forKey:self.preferencesIdentifier];
}
- [self updateTimeValue];
+ [self updateDisplayedTitle];
+}
+
+- (NSTextAlignment)alignment
+{
+ return self.cell.alignment;
+}
+
+- (void)setAlignment:(NSTextAlignment)alignment
+{
+ self.cell.alignment = alignment;
+ [self updateDisplayedTitle];
}
-- (void)mouseDown:(NSEvent *)ourEvent
+- (void)mouseDown:(NSEvent *)event
{
- if (ourEvent.clickCount > 1) {
+ if (event.clickCount > 1) {
[VLCMain.sharedInstance.mainMenu goToSpecificTime:nil];
} else {
self.isTimeRemaining = !self.isTimeRemaining;
}
-
- [self updateTimeValue];
- [self.nextResponder mouseDown:ourEvent];
}
- (void)setTime:(NSString *)time withRemainingTime:(NSString *)remainingTime
@@ -82,28 +138,26 @@ NSString * const VLCTimeFieldDisplayTimeAsRemaining = @"DisplayTimeAsTimeRemaini
_cachedTime = time;
_remainingTime = remainingTime;
- [self updateTimeValue];
+ [self updateDisplayedTitle];
}
-- (void)updateTimeValue
+- (void)updateDisplayedTitle
{
- if (!_cachedTime || !_remainingTime) {
- return;
- }
+ NSString * const title =
+ self.timeRemaining ? (_remainingTime ?: @"") : (_cachedTime ?: @"");
- if (self.timeRemaining) {
- self.stringValue = _remainingTime;
- } else {
- self.stringValue = _cachedTime;
- }
-}
+ NSMutableParagraphStyle * const paragraphStyle = [[NSMutableParagraphStyle alloc] init];
+ paragraphStyle.alignment = self.alignment;
+ paragraphStyle.lineBreakMode = NSLineBreakByClipping;
-- (void)setStringValue:(NSString *)stringValue
-{
- [super setStringValue:stringValue];
+ NSDictionary<NSAttributedStringKey, id> * const attributes = @{
+ NSFontAttributeName : _titleFont ?: [NSFont systemFontOfSize:NSFont.smallSystemFontSize],
+ NSForegroundColorAttributeName : _titleColor ?: NSColor.labelColor,
+ NSParagraphStyleAttributeName : paragraphStyle
+ };
- _cachedTime = nil;
- _remainingTime = nil;
+ self.attributedTitle = [[NSAttributedString alloc] initWithString:title
+ attributes:attributes];
}
- (BOOL)timeRemaining
View it on GitLab: https://code.videolan.org/videolan/vlc/-/commit/f4fa30dc9a961c83826b05178ecc1f28b6938943
--
View it on GitLab: https://code.videolan.org/videolan/vlc/-/commit/f4fa30dc9a961c83826b05178ecc1f28b6938943
You're receiving this email because of your account on code.videolan.org. Manage all notifications: https://code.videolan.org/-/profile/notifications | Help: https://code.videolan.org/help
More information about the vlc-commits
mailing list