• R/O
  • HTTP
  • SSH
  • HTTPS

timidity41: Commit


Commit MetaInfo

Révision1aa74420a4414f89203de55848489a70e89c5a4c (tree)
l'heure2020-03-15 05:10:54
AuteurStarg <starg@user...>
CommiterStarg

Message de Log

Avoid accessing GUI from main thread while playing

Change Summary

Modification

--- a/interface/w32g_i.c
+++ b/interface/w32g_i.c
@@ -877,6 +877,8 @@ extern void ShowPrefWnd ( void );
877877 extern void HidePrefWnd ( void );
878878 extern BOOL IsVisiblePrefWnd ( void );
879879
880+#define WM_UPDATE_SCROLLBAR_PROGRESS (WM_APP + 100) // (int)lParam: sec
881+
880882 LRESULT CALLBACK
881883 MainProc(HWND hwnd, UINT uMess, WPARAM wParam, LPARAM lParam)
882884 {
@@ -1289,6 +1291,24 @@ MainProc(HWND hwnd, UINT uMess, WPARAM wParam, LPARAM lParam)
12891291 break;
12901292 }
12911293 break;
1294+ case WM_UPDATE_SCROLLBAR_PROGRESS:
1295+ {
1296+ int sec = (int)lParam;
1297+
1298+ if (sec == -1)
1299+ {
1300+ EnableWindow(hMainWndScrollbarProgressWnd, FALSE);
1301+ progress_jump = -1;
1302+ }
1303+ else
1304+ {
1305+ EnableWindow(hMainWndScrollbarProgressWnd, TRUE);
1306+ if (progress_jump == -1)
1307+ SetScrollPos(hMainWndScrollbarProgressWnd, SB_CTL, sec, TRUE);
1308+ }
1309+ return TRUE;
1310+ }
1311+
12921312 default:
12931313 if (uMess == RegisterWindowMessage("TaskbarCreated")) {
12941314 ShowWindow(hMainWnd, SW_HIDE);
@@ -3125,7 +3145,7 @@ static void CanvasPaintDo(void)
31253145 void CanvasPaint(void)
31263146 {
31273147 Canvas.PaintDone = 0;
3128- UpdateWindow(hCanvasWnd);
3148+ //UpdateWindow(hCanvasWnd);
31293149 }
31303150 void CanvasPaintAll(void)
31313151 {
@@ -4291,7 +4311,7 @@ static void MPanelPaintDo(void)
42914311 // 描画
42924312 void MPanelPaint(void)
42934313 {
4294- UpdateWindow(hPanelWnd);
4314+ //UpdateWindow(hPanelWnd);
42954315 }
42964316
42974317 // 完全描画
@@ -5773,27 +5793,12 @@ void w32g_ctle_play_start(int sec)
57735793
57745794 void MainWndScrollbarProgressUpdate(int sec)
57755795 {
5776- static int lastsec = -1, enabled = 0;
5796+ static int lastsec = -1;
57775797
57785798 if(sec == lastsec)
57795799 return;
57805800
5781- if(sec == -1)
5782- {
5783- EnableWindow(hMainWndScrollbarProgressWnd, FALSE);
5784- enabled = 0;
5785- progress_jump = -1;
5786- }
5787- else
5788- {
5789- if(!enabled)
5790- {
5791- EnableWindow(hMainWndScrollbarProgressWnd, TRUE);
5792- enabled = 1;
5793- }
5794- if(progress_jump == -1)
5795- SetScrollPos(hMainWndScrollbarProgressWnd, SB_CTL, sec, TRUE);
5796- }
5801+ PostMessage(hMainWnd, WM_UPDATE_SCROLLBAR_PROGRESS, 0, (LPARAM)sec);
57975802 lastsec = sec;
57985803 }
57995804
Afficher sur ancien navigateur de dépôt.