Apparently the issue with both is that, since it is the frame window that is in focus rather than the game (though it is a child of it and takes input), it is not counted as active and will not take inputs. Not actually sure if there's an easy fix, but if you know anyone experienced with WinAPI and willing to help, you can have them look at the source code.
I checked the source code and I fixed the focus issue with ( to wndproc of the window_frame_host )
case WM_SETFOCUS: {
HWND game = (HWND)GetWindowLongPtr( hWnd, GWLP_USERDATA );
if ( game != nullptr ) {
if ( IsWindow( game ) ) {
SetFocus( game );
}
}
return 0;
};
This just checks for focus on the window and passes it to the game window. Seems to work for me.
Doesn't fix the gamepad issue though :[