Commit d1228e6
committed
win32+core_updater: fix taskbar progress overlay during downloads
The Win32 taskbar progress overlay (the green bar drawn on the
RetroArch taskbar icon during downloads) never appeared. Two
independent bugs were keeping it dark:
1) wndproc: the 'TaskbarButtonCreated' message check was nested
inside unrelated 'case' arms (WM_MOUSEMOVE..WM_NCLBUTTONDBLCLK,
WM_DROPFILES..WM_COMMAND, and the WM_PAINT branch of the GDI
wrappers). Since 'TaskbarButtonCreated' is a registered window
message with its own dynamically-allocated value, those arms
could never match it, so WIN32_CMN_FLAG_TASKBAR_CREATED was
never set and dispserv_win32's set_window_progress() always
early-outed without calling ITaskbarList3::SetProgressValue.
Move the comparison to the top of each dispatcher
(wnd_proc_common, wnd_proc_common_internal,
wnd_proc_winraw_common_internal, wnd_proc_common_dinput_internal)
so it sees every incoming message. Short-circuit on the flag
bit so the comparison only runs until the message arrives once.
The HAVE_TASKBAR gate is unchanged; pre-Win7 builds either don't
define it or fall back through the existing taskbar_list NULL
guard in dispserv_win32.
2) task_core_updater: even with the flag set, the five outer
aggregating tasks (get_list, single download,
update_installed_cores, play_feature_delivery_install,
play_feature_delivery_switch) never set a progress_cb. They
spawn inner http transfers with mute=true to suppress per-core
on-screen toasts, which also suppresses the inner tasks'
progress_cb invocation in task_queue_push_progress(). Net
result: video_display_server_set_window_progress() was never
being called during a Core Updater run.
Promote the existing http progress forwarder
(http_transfer_progress_cb in task_http.c) to a public helper
named task_window_progress_cb, declare it in tasks_internal.h,
and wire it as the progress_cb of all five outer tasks. The
aggregating tasks already drive task->progress in 0..100 across
their state machines, so no other plumbing is needed.
Single-zip update flows (Update Assets, Update Cheats, Update
Databases, etc.) were already working because their underlying
http transfer is unmuted and titled, and the existing progress_cb
fired for those.1 parent 5f0afac commit d1228e6
4 files changed
Lines changed: 49 additions & 47 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
508 | 508 | | |
509 | 509 | | |
510 | 510 | | |
| 511 | + | |
| 512 | + | |
| 513 | + | |
| 514 | + | |
| 515 | + | |
| 516 | + | |
| 517 | + | |
| 518 | + | |
511 | 519 | | |
512 | 520 | | |
513 | 521 | | |
| |||
709 | 717 | | |
710 | 718 | | |
711 | 719 | | |
| 720 | + | |
| 721 | + | |
| 722 | + | |
| 723 | + | |
| 724 | + | |
| 725 | + | |
| 726 | + | |
712 | 727 | | |
713 | 728 | | |
714 | 729 | | |
| |||
771 | 786 | | |
772 | 787 | | |
773 | 788 | | |
774 | | - | |
775 | | - | |
776 | | - | |
777 | | - | |
778 | 789 | | |
779 | 790 | | |
780 | 791 | | |
| |||
793 | 804 | | |
794 | 805 | | |
795 | 806 | | |
796 | | - | |
797 | | - | |
798 | | - | |
799 | | - | |
800 | 807 | | |
801 | 808 | | |
802 | 809 | | |
| |||
830 | 837 | | |
831 | 838 | | |
832 | 839 | | |
| 840 | + | |
| 841 | + | |
| 842 | + | |
| 843 | + | |
| 844 | + | |
| 845 | + | |
| 846 | + | |
833 | 847 | | |
834 | 848 | | |
835 | 849 | | |
| |||
857 | 871 | | |
858 | 872 | | |
859 | 873 | | |
860 | | - | |
861 | | - | |
862 | | - | |
863 | | - | |
864 | 874 | | |
865 | 875 | | |
866 | 876 | | |
| |||
879 | 889 | | |
880 | 890 | | |
881 | 891 | | |
882 | | - | |
883 | | - | |
884 | | - | |
885 | | - | |
886 | 892 | | |
887 | 893 | | |
888 | 894 | | |
| |||
936 | 942 | | |
937 | 943 | | |
938 | 944 | | |
| 945 | + | |
| 946 | + | |
| 947 | + | |
| 948 | + | |
| 949 | + | |
| 950 | + | |
| 951 | + | |
939 | 952 | | |
940 | 953 | | |
941 | 954 | | |
| |||
1074 | 1087 | | |
1075 | 1088 | | |
1076 | 1089 | | |
1077 | | - | |
1078 | | - | |
1079 | | - | |
1080 | | - | |
1081 | 1090 | | |
1082 | 1091 | | |
1083 | 1092 | | |
| |||
1104 | 1113 | | |
1105 | 1114 | | |
1106 | 1115 | | |
1107 | | - | |
1108 | | - | |
1109 | | - | |
1110 | | - | |
1111 | 1116 | | |
1112 | 1117 | | |
1113 | 1118 | | |
| |||
1342 | 1347 | | |
1343 | 1348 | | |
1344 | 1349 | | |
1345 | | - | |
1346 | 1350 | | |
1347 | 1351 | | |
1348 | 1352 | | |
| |||
1365 | 1369 | | |
1366 | 1370 | | |
1367 | 1371 | | |
1368 | | - | |
1369 | | - | |
1370 | | - | |
1371 | | - | |
1372 | | - | |
1373 | | - | |
1374 | 1372 | | |
1375 | 1373 | | |
1376 | 1374 | | |
| |||
1385 | 1383 | | |
1386 | 1384 | | |
1387 | 1385 | | |
1388 | | - | |
1389 | 1386 | | |
1390 | 1387 | | |
1391 | 1388 | | |
| |||
1408 | 1405 | | |
1409 | 1406 | | |
1410 | 1407 | | |
1411 | | - | |
1412 | | - | |
1413 | | - | |
1414 | | - | |
1415 | | - | |
1416 | | - | |
1417 | 1408 | | |
1418 | 1409 | | |
1419 | 1410 | | |
| |||
1427 | 1418 | | |
1428 | 1419 | | |
1429 | 1420 | | |
1430 | | - | |
1431 | 1421 | | |
1432 | 1422 | | |
1433 | 1423 | | |
| |||
1450 | 1440 | | |
1451 | 1441 | | |
1452 | 1442 | | |
1453 | | - | |
1454 | | - | |
1455 | | - | |
1456 | | - | |
1457 | | - | |
1458 | | - | |
1459 | 1443 | | |
1460 | 1444 | | |
1461 | 1445 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
476 | 476 | | |
477 | 477 | | |
478 | 478 | | |
| 479 | + | |
479 | 480 | | |
480 | 481 | | |
481 | 482 | | |
| |||
1118 | 1119 | | |
1119 | 1120 | | |
1120 | 1121 | | |
| 1122 | + | |
1121 | 1123 | | |
1122 | 1124 | | |
1123 | 1125 | | |
| |||
1547 | 1549 | | |
1548 | 1550 | | |
1549 | 1551 | | |
| 1552 | + | |
1550 | 1553 | | |
1551 | 1554 | | |
1552 | 1555 | | |
| |||
1869 | 1872 | | |
1870 | 1873 | | |
1871 | 1874 | | |
| 1875 | + | |
1872 | 1876 | | |
1873 | 1877 | | |
1874 | 1878 | | |
| |||
2239 | 2243 | | |
2240 | 2244 | | |
2241 | 2245 | | |
| 2246 | + | |
2242 | 2247 | | |
2243 | 2248 | | |
2244 | 2249 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
243 | 243 | | |
244 | 244 | | |
245 | 245 | | |
246 | | - | |
| 246 | + | |
| 247 | + | |
| 248 | + | |
| 249 | + | |
| 250 | + | |
| 251 | + | |
247 | 252 | | |
248 | 253 | | |
249 | 254 | | |
| |||
312 | 317 | | |
313 | 318 | | |
314 | 319 | | |
315 | | - | |
| 320 | + | |
316 | 321 | | |
317 | 322 | | |
318 | 323 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
61 | 61 | | |
62 | 62 | | |
63 | 63 | | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
64 | 72 | | |
65 | 73 | | |
66 | 74 | | |
| |||
0 commit comments