You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
// TODO Hexa: `render(child, {...msg, hwnd: child as! HWnd})` + ensure its on stack
438
+
// let childMsg = Msg() // TODO ensure allocated on stack
439
+
440
+
/*
441
+
TODO Probably adding local message queue for speed makes sense (for messages produced within the app like this one)
442
+
443
+
Correct Behavior (Win32 Standard):
444
+
Children don’t inherit the parent’s WM_PAINT message. Instead, when a child’s region is invalidated (e.g., via InvalidateRect(child_hwnd, ...)), the system posts a separate WM_PAINT message to the child’s HWND, which DispatchMessage routes to the child’s proc.
445
+
You’d see separate log entries like:
446
+
dispatchMessageW called (parent WM_PAINT, hwnd=parent_hwnd)
447
+
dispatchMessageW called (child WM_PAINT, hwnd=child_hwnd)
448
+
*/
433
449
}
434
450
435
451
return result
@@ -455,12 +471,14 @@ fun dispatchMessageW(msg Msg) LResult? {
455
471
} else {
456
472
tofitaDebugLog("> not_WM_PAINT".utf16())
457
473
result = window.proc(msg.hwnd, msg.message, msg.wParam, msg.lParam)
0 commit comments