|
@@ -88,10 +88,10 @@ struct ImGui_ImplWin32_Data
|
|
|
INT64 Time;
|
|
|
INT64 TicksPerSecond;
|
|
|
ImGuiMouseCursor LastMouseCursor;
|
|
|
- bool HasGamepad;
|
|
|
- bool WantUpdateHasGamepad;
|
|
|
|
|
|
#ifndef IMGUI_IMPL_WIN32_DISABLE_GAMEPAD
|
|
|
+ bool HasGamepad;
|
|
|
+ bool WantUpdateHasGamepad;
|
|
|
HMODULE XInputDLL;
|
|
|
PFN_XInputGetCapabilities XInputGetCapabilities;
|
|
|
PFN_XInputGetState XInputGetState;
|
|
@@ -129,7 +129,6 @@ bool ImGui_ImplWin32_Init(void* hwnd)
|
|
|
io.BackendFlags |= ImGuiBackendFlags_HasSetMousePos; // We can honor io.WantSetMousePos requests (optional, rarely used)
|
|
|
|
|
|
bd->hWnd = (HWND)hwnd;
|
|
|
- bd->WantUpdateHasGamepad = true;
|
|
|
bd->TicksPerSecond = perf_frequency;
|
|
|
bd->Time = perf_counter;
|
|
|
bd->LastMouseCursor = ImGuiMouseCursor_COUNT;
|
|
@@ -139,6 +138,7 @@ bool ImGui_ImplWin32_Init(void* hwnd)
|
|
|
|
|
|
// Dynamically load XInput library
|
|
|
#ifndef IMGUI_IMPL_WIN32_DISABLE_GAMEPAD
|
|
|
+ bd->WantUpdateHasGamepad = true;
|
|
|
const char* xinput_dll_names[] =
|
|
|
{
|
|
|
"xinput1_4.dll", // Windows 8+
|
|
@@ -634,8 +634,10 @@ IMGUI_IMPL_API LRESULT ImGui_ImplWin32_WndProcHandler(HWND hwnd, UINT msg, WPARA
|
|
|
return 1;
|
|
|
return 0;
|
|
|
case WM_DEVICECHANGE:
|
|
|
+#ifndef IMGUI_IMPL_WIN32_DISABLE_GAMEPAD
|
|
|
if ((UINT)wParam == DBT_DEVNODES_CHANGED)
|
|
|
bd->WantUpdateHasGamepad = true;
|
|
|
+#endif
|
|
|
return 0;
|
|
|
}
|
|
|
return 0;
|