mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-10-31 05:01:05 +01:00 
			
		
		
		
	Platform IME: [windows] call ImmSetCandidateWindow() to position candidate window.
This commit is contained in:
		| @@ -61,6 +61,7 @@ Other Changes: | ||||
| - Platform IME: changed io.ImeSetInputScreenPosFn() to io.SetPlatformImeDataFn() API, | ||||
|   now taking a ImGuiPlatformImeData structure which we can more easily extend in the future. | ||||
| - Platform IME: moved io.ImeWindowHandle to GetMainViewport()->PlatformHandleRaw. | ||||
| - Platform IME: [windows] call ImmSetCandidateWindow() to position candidate window. | ||||
| - Backends: OpenGL3: Fixed a buffer overflow in imgui_impl_opengl3_loader.h init (added in 1.86). (#4468, #4830) [@dymk] | ||||
|   It would generally not have noticeable side-effect at runtime but would be detected by runtime checkers. | ||||
| - Backends: Metal: Added Apple Metal C++ API support. (#4824, #4746) [@luigifcruz] | ||||
|   | ||||
							
								
								
									
										15
									
								
								imgui.cpp
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								imgui.cpp
									
									
									
									
									
								
							| @@ -11512,11 +11512,16 @@ static void SetPlatformImeDataFn_DefaultImpl(ImGuiViewport* viewport, ImGuiPlatf | ||||
|  | ||||
|     if (HIMC himc = ::ImmGetContext(hwnd)) | ||||
|     { | ||||
|         COMPOSITIONFORM cf; | ||||
|         cf.ptCurrentPos.x = (LONG)data->InputPos.x; | ||||
|         cf.ptCurrentPos.y = (LONG)data->InputPos.y; | ||||
|         cf.dwStyle = CFS_FORCE_POSITION; | ||||
|         ::ImmSetCompositionWindow(himc, &cf); | ||||
|         COMPOSITIONFORM composition_form = {}; | ||||
|         composition_form.ptCurrentPos.x = (LONG)data->InputPos.x; | ||||
|         composition_form.ptCurrentPos.y = (LONG)data->InputPos.y; | ||||
|         composition_form.dwStyle = CFS_FORCE_POSITION; | ||||
|         ::ImmSetCompositionWindow(himc, &composition_form); | ||||
|         CANDIDATEFORM candidate_form = {}; | ||||
|         candidate_form.dwStyle = CFS_CANDIDATEPOS; | ||||
|         candidate_form.ptCurrentPos.x = (LONG)data->InputPos.x; | ||||
|         candidate_form.ptCurrentPos.y = (LONG)data->InputPos.y; | ||||
|         ::ImmSetCandidateWindow(himc, &candidate_form); | ||||
|         ::ImmReleaseContext(hwnd, himc); | ||||
|     } | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user