OSDN Git Service

ColorizeListの非同期化に関する修正を差し戻し
authorKimura Youichi <kim.upsilon@bucyou.net>
Tue, 24 Sep 2019 18:13:54 +0000 (03:13 +0900)
committerKimura Youichi <kim.upsilon@bucyou.net>
Tue, 24 Sep 2019 18:14:47 +0000 (03:14 +0900)
Fixes: d2143257 ("発言一覧の選択位置が変化してから再描画するまで数msec待機する")

OpenTween/DetailsListView.cs
OpenTween/Resources/ChangeLog.txt
OpenTween/Tween.cs

index 393d775..cf6f1ab 100644 (file)
@@ -108,7 +108,7 @@ namespace OpenTween.OpenTweenCustomControl
 
         public void ChangeItemFontAndColor(ListViewItem item, Color foreColor, Font fnt)
         {
-            if (item.ForeColor == foreColor && item.Font == fnt)
+            if (item.ForeColor == foreColor && item.Font.Equals(fnt))
                 return;
 
             item.ForeColor = foreColor;
index edcf7fa..3633b42 100644 (file)
@@ -2,6 +2,7 @@
 
 ==== Ver 2.4.1-dev(2019/xx/xx)
  * FIX: 「タブを一覧の下に表示する」を無効にすると起動時にエラーが発生する不具合を修正 (thx @mulsys!)
+ * FIX: 発言一覧の選択状態が正しく描画されない不具合を修正
 
 ==== Ver 2.4.0(2019/09/24)
  * NEW: Twemoji 12.0.0 に対応しました
index db2a31f..edfcc65 100644 (file)
@@ -366,7 +366,6 @@ namespace OpenTween
 
         private readonly TimelineScheduler timelineScheduler = new TimelineScheduler();
         private ThrottlingTimer RefreshThrottlingTimer = null!;
-        private ThrottlingTimer colorizeDebouncer = null!;
         private ThrottlingTimer selectionDebouncer = null!;
         private ThrottlingTimer saveConfigDebouncer = null!;
 
@@ -1218,7 +1217,6 @@ namespace OpenTween
 
             var streamingRefreshInterval = TimeSpan.FromSeconds(SettingManager.Common.UserstreamPeriod);
             this.RefreshThrottlingTimer = ThrottlingTimer.Throttle(() => this.InvokeAsync(() => this.RefreshTimeline()), streamingRefreshInterval);
-            this.colorizeDebouncer = ThrottlingTimer.Debounce(() => this.InvokeAsync(() => this.ColorizeList()), TimeSpan.FromMilliseconds(100), leading: true);
             this.selectionDebouncer = ThrottlingTimer.Debounce(() => this.InvokeAsync(() => this.UpdateSelectedPost()), TimeSpan.FromMilliseconds(100), leading: true);
             this.saveConfigDebouncer = ThrottlingTimer.Debounce(() => this.InvokeAsync(() => this.SaveConfigsAll(ifModified: true)), TimeSpan.FromSeconds(1));
 
@@ -1955,7 +1953,7 @@ namespace OpenTween
             //キャッシュの書き換え
             ChangeCacheStyleRead(true, index); // 既読へ(フォント、文字色)
 
-            this.colorizeDebouncer.Call();
+            this.ColorizeList();
             this.selectionDebouncer.Call();
         }
 
@@ -2017,6 +2015,7 @@ namespace OpenTween
             }
             else
             {
+                DList.Update();
                 if (SettingManager.Common.UseUnreadStyle)
                     DList.ChangeItemFontAndColor(Item, cl, fnt);
                 else