Révision | 1aa74420a4414f89203de55848489a70e89c5a4c (tree) |
---|---|
l'heure | 2020-03-15 05:10:54 |
Auteur | Starg <starg@user...> |
Commiter | Starg |
Avoid accessing GUI from main thread while playing
@@ -877,6 +877,8 @@ extern void ShowPrefWnd ( void ); | ||
877 | 877 | extern void HidePrefWnd ( void ); |
878 | 878 | extern BOOL IsVisiblePrefWnd ( void ); |
879 | 879 | |
880 | +#define WM_UPDATE_SCROLLBAR_PROGRESS (WM_APP + 100) // (int)lParam: sec | |
881 | + | |
880 | 882 | LRESULT CALLBACK |
881 | 883 | MainProc(HWND hwnd, UINT uMess, WPARAM wParam, LPARAM lParam) |
882 | 884 | { |
@@ -1289,6 +1291,24 @@ MainProc(HWND hwnd, UINT uMess, WPARAM wParam, LPARAM lParam) | ||
1289 | 1291 | break; |
1290 | 1292 | } |
1291 | 1293 | 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 | + | |
1292 | 1312 | default: |
1293 | 1313 | if (uMess == RegisterWindowMessage("TaskbarCreated")) { |
1294 | 1314 | ShowWindow(hMainWnd, SW_HIDE); |
@@ -3125,7 +3145,7 @@ static void CanvasPaintDo(void) | ||
3125 | 3145 | void CanvasPaint(void) |
3126 | 3146 | { |
3127 | 3147 | Canvas.PaintDone = 0; |
3128 | - UpdateWindow(hCanvasWnd); | |
3148 | + //UpdateWindow(hCanvasWnd); | |
3129 | 3149 | } |
3130 | 3150 | void CanvasPaintAll(void) |
3131 | 3151 | { |
@@ -4291,7 +4311,7 @@ static void MPanelPaintDo(void) | ||
4291 | 4311 | // 描画 |
4292 | 4312 | void MPanelPaint(void) |
4293 | 4313 | { |
4294 | - UpdateWindow(hPanelWnd); | |
4314 | + //UpdateWindow(hPanelWnd); | |
4295 | 4315 | } |
4296 | 4316 | |
4297 | 4317 | // 完全描画 |
@@ -5773,27 +5793,12 @@ void w32g_ctle_play_start(int sec) | ||
5773 | 5793 | |
5774 | 5794 | void MainWndScrollbarProgressUpdate(int sec) |
5775 | 5795 | { |
5776 | - static int lastsec = -1, enabled = 0; | |
5796 | + static int lastsec = -1; | |
5777 | 5797 | |
5778 | 5798 | if(sec == lastsec) |
5779 | 5799 | return; |
5780 | 5800 | |
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); | |
5797 | 5802 | lastsec = sec; |
5798 | 5803 | } |
5799 | 5804 |