mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-10-31 21:21:06 +01:00 
			
		
		
		
	Backends: Win32: Store left/right variants of Ctrl/Shift/Alt mods in KeysDown[] array. (#2625)
Technically not much required yet but will be by extra-keys work. fix miscleared GLFW field for consistency (no effect)
This commit is contained in:
		| @@ -270,6 +270,7 @@ static bool ImGui_ImplGlfw_Init(GLFWwindow* window, bool install_callbacks, Glfw | |||||||
|  |  | ||||||
|     // Chain GLFW callbacks: our callbacks will call the user's previously installed callbacks, if any. |     // Chain GLFW callbacks: our callbacks will call the user's previously installed callbacks, if any. | ||||||
|     bd->PrevUserCallbackWindowFocus = NULL; |     bd->PrevUserCallbackWindowFocus = NULL; | ||||||
|  |     bd->PrevUserCallbackCursorEnter = NULL; | ||||||
|     bd->PrevUserCallbackMousebutton = NULL; |     bd->PrevUserCallbackMousebutton = NULL; | ||||||
|     bd->PrevUserCallbackScroll = NULL; |     bd->PrevUserCallbackScroll = NULL; | ||||||
|     bd->PrevUserCallbackKey = NULL; |     bd->PrevUserCallbackKey = NULL; | ||||||
|   | |||||||
| @@ -33,8 +33,9 @@ typedef DWORD (WINAPI *PFN_XInputGetState)(DWORD, XINPUT_STATE*); | |||||||
|  |  | ||||||
| // CHANGELOG | // CHANGELOG | ||||||
| // (minor and older changes stripped away, please see git history for details) | // (minor and older changes stripped away, please see git history for details) | ||||||
|  | //  2021-12-16: Inputs: Fill VK_LCONTROL/VK_RCONTROL/VK_LSHIFT/VK_RSHIFT/VK_LMENU/VK_RMENU for completeness. | ||||||
| //  2021-08-17: Calling io.AddFocusEvent() on WM_SETFOCUS/WM_KILLFOCUS messages. | //  2021-08-17: Calling io.AddFocusEvent() on WM_SETFOCUS/WM_KILLFOCUS messages. | ||||||
| //  2021-08-02: Inputs: Fixed keyboard modifiers being reported when host windo doesn't have focus. | //  2021-08-02: Inputs: Fixed keyboard modifiers being reported when host window doesn't have focus. | ||||||
| //  2021-07-29: Inputs: MousePos is correctly reported when the host platform window is hovered but not focused (using TrackMouseEvent() to receive WM_MOUSELEAVE events). | //  2021-07-29: Inputs: MousePos is correctly reported when the host platform window is hovered but not focused (using TrackMouseEvent() to receive WM_MOUSELEAVE events). | ||||||
| //  2021-06-29: Reorganized backend to pull data from a single structure to facilitate usage with multiple-contexts (all g_XXXX access changed to bd->XXXX). | //  2021-06-29: Reorganized backend to pull data from a single structure to facilitate usage with multiple-contexts (all g_XXXX access changed to bd->XXXX). | ||||||
| //  2021-06-08: Fixed ImGui_ImplWin32_EnableDpiAwareness() and ImGui_ImplWin32_GetDpiScaleForMonitor() to handle Windows 8.1/10 features without a manifest (per-monitor DPI, and properly calls SetProcessDpiAwareness() on 8.1). | //  2021-06-08: Fixed ImGui_ImplWin32_EnableDpiAwareness() and ImGui_ImplWin32_GetDpiScaleForMonitor() to handle Windows 8.1/10 features without a manifest (per-monitor DPI, and properly calls SetProcessDpiAwareness() on 8.1). | ||||||
| @@ -426,11 +427,23 @@ IMGUI_IMPL_API LRESULT ImGui_ImplWin32_WndProcHandler(HWND hwnd, UINT msg, WPARA | |||||||
|         if (wParam < 256) |         if (wParam < 256) | ||||||
|             io.KeysDown[wParam] = down; |             io.KeysDown[wParam] = down; | ||||||
|         if (wParam == VK_CONTROL) |         if (wParam == VK_CONTROL) | ||||||
|             io.KeyCtrl = down; |         { | ||||||
|  |             io.KeysDown[VK_LCONTROL] = ((::GetKeyState(VK_LCONTROL) & 0x8000) != 0); | ||||||
|  |             io.KeysDown[VK_RCONTROL] = ((::GetKeyState(VK_RCONTROL) & 0x8000) != 0); | ||||||
|  |             io.KeyCtrl = io.KeysDown[VK_LCONTROL] || io.KeysDown[VK_RCONTROL]; | ||||||
|  |         } | ||||||
|         if (wParam == VK_SHIFT) |         if (wParam == VK_SHIFT) | ||||||
|             io.KeyShift = down; |         { | ||||||
|  |             io.KeysDown[VK_LSHIFT] = ((::GetKeyState(VK_LSHIFT) & 0x8000) != 0); | ||||||
|  |             io.KeysDown[VK_RSHIFT] = ((::GetKeyState(VK_RSHIFT) & 0x8000) != 0); | ||||||
|  |             io.KeyShift            = io.KeysDown[VK_LSHIFT] || io.KeysDown[VK_RSHIFT]; | ||||||
|  |         } | ||||||
|         if (wParam == VK_MENU) |         if (wParam == VK_MENU) | ||||||
|             io.KeyAlt = down; |         { | ||||||
|  |             io.KeysDown[VK_LMENU] = ((::GetKeyState(VK_LMENU) & 0x8000) != 0); | ||||||
|  |             io.KeysDown[VK_RMENU] = ((::GetKeyState(VK_RMENU) & 0x8000) != 0); | ||||||
|  |             io.KeyAlt             = io.KeysDown[VK_LMENU] || io.KeysDown[VK_RMENU]; | ||||||
|  |         } | ||||||
|         return 0; |         return 0; | ||||||
|     } |     } | ||||||
|     case WM_SETFOCUS: |     case WM_SETFOCUS: | ||||||
|   | |||||||
| @@ -110,6 +110,7 @@ Other Changes: | |||||||
| - Backends: OpenGL2, Allegro5, Marmalade: Fixed mishandling of the ImDrawCmd::IdxOffset field. | - Backends: OpenGL2, Allegro5, Marmalade: Fixed mishandling of the ImDrawCmd::IdxOffset field. | ||||||
|   This is an old bug, but due to the way we created drawlists, it never had any visible side-effect before. |   This is an old bug, but due to the way we created drawlists, it never had any visible side-effect before. | ||||||
|   The new code for handling Modal and CTRL+Tab dimming/whitening recently made the bug surface. (#4790) |   The new code for handling Modal and CTRL+Tab dimming/whitening recently made the bug surface. (#4790) | ||||||
|  | - Backends: Win32: Store left/right variants of Ctrl/Shift/Alt mods in KeysDown[] array. (#2625) [@thedmd] | ||||||
| - Backends: DX12: Fixed DRAW_EMPTY_SCISSOR_RECTANGLE warnings. (#4775) | - Backends: DX12: Fixed DRAW_EMPTY_SCISSOR_RECTANGLE warnings. (#4775) | ||||||
| - Backends: SDL_Renderer: Added support for large meshes (64k+ vertices) with 16-bit indices, | - Backends: SDL_Renderer: Added support for large meshes (64k+ vertices) with 16-bit indices, | ||||||
|   enabling 'ImGuiBackendFlags_RendererHasVtxOffset' in the backend. (#3926) [@rokups] |   enabling 'ImGuiBackendFlags_RendererHasVtxOffset' in the backend. (#3926) [@rokups] | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user