From 13f377f6800bc8695da7b6379afc680641266db2 Mon Sep 17 00:00:00 2001 From: My-Responsitories <107370289+My-Responsitories@users.noreply.github.com> Date: Tue, 30 Dec 2025 11:58:56 +0800 Subject: [PATCH] fix: font size --- lib/pages/danmaku/view.dart | 3 ++- lib/pages/live_room/view.dart | 3 ++- lib/plugin/pl_player/utils/danmaku_options.dart | 4 +++- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/lib/pages/danmaku/view.dart b/lib/pages/danmaku/view.dart index caca32fc1..3ddde9e04 100644 --- a/lib/pages/danmaku/view.dart +++ b/lib/pages/danmaku/view.dart @@ -68,7 +68,8 @@ class _PlDanmakuState extends State { @override void didUpdateWidget(PlDanmaku oldWidget) { super.didUpdateWidget(oldWidget); - if (oldWidget.notFullscreen != widget.notFullscreen) { + if (oldWidget.notFullscreen != widget.notFullscreen && + !DanmakuOptions.sameFontScale) { _controller?.updateOption( DanmakuOptions.get(notFullscreen: widget.notFullscreen), ); diff --git a/lib/pages/live_room/view.dart b/lib/pages/live_room/view.dart index 7072f7e6c..0f256ff6b 100644 --- a/lib/pages/live_room/view.dart +++ b/lib/pages/live_room/view.dart @@ -995,7 +995,8 @@ class _LiveDanmakuState extends State { @override void didUpdateWidget(LiveDanmaku oldWidget) { super.didUpdateWidget(oldWidget); - if (oldWidget.notFullscreen != widget.notFullscreen) { + if (oldWidget.notFullscreen != widget.notFullscreen && + !DanmakuOptions.sameFontScale) { plPlayerController.danmakuController?.updateOption( DanmakuOptions.get(notFullscreen: widget.notFullscreen), ); diff --git a/lib/plugin/pl_player/utils/danmaku_options.dart b/lib/plugin/pl_player/utils/danmaku_options.dart index 09578453a..06604f53b 100644 --- a/lib/plugin/pl_player/utils/danmaku_options.dart +++ b/lib/plugin/pl_player/utils/danmaku_options.dart @@ -19,12 +19,14 @@ abstract final class DanmakuOptions { static bool massiveMode = Pref.danmakuMassiveMode; static double danmakuLineHeight = Pref.danmakuLineHeight; + static bool sameFontScale = danmakuFontScale == danmakuFontScaleFS; + static DanmakuOption get({ required bool notFullscreen, double speed = 1.0, }) { return DanmakuOption( - fontSize: notFullscreen ? danmakuFontScaleFS : danmakuFontScale, + fontSize: 15 * (notFullscreen ? danmakuFontScaleFS : danmakuFontScale), fontWeight: danmakuFontWeight, area: danmakuShowArea, duration: danmakuDuration / speed,