mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-10-30 20:51:06 +01:00 
			
		
		
		
	Fixed backspace handling on MacOS (fixed https://github.com/ocornut/imgui/issues/2817).
Allow null view passing as parameter to ImGui_ImplOSX_NewFrame
This commit is contained in:
		| @@ -13,5 +13,5 @@ | |||||||
|  |  | ||||||
| IMGUI_API bool        ImGui_ImplOSX_Init(); | IMGUI_API bool        ImGui_ImplOSX_Init(); | ||||||
| IMGUI_API void        ImGui_ImplOSX_Shutdown(); | IMGUI_API void        ImGui_ImplOSX_Shutdown(); | ||||||
| IMGUI_API void        ImGui_ImplOSX_NewFrame(NSView *_Nonnull view); | IMGUI_API void        ImGui_ImplOSX_NewFrame(NSView *_Nullable view); | ||||||
| IMGUI_API bool        ImGui_ImplOSX_HandleEvent(NSEvent *_Nonnull event, NSView *_Nullable view); | IMGUI_API bool        ImGui_ImplOSX_HandleEvent(NSEvent *_Nonnull event, NSView *_Nullable view); | ||||||
|   | |||||||
| @@ -150,9 +150,12 @@ void ImGui_ImplOSX_NewFrame(NSView* view) | |||||||
| { | { | ||||||
|     // Setup display size |     // Setup display size | ||||||
|     ImGuiIO& io = ImGui::GetIO(); |     ImGuiIO& io = ImGui::GetIO(); | ||||||
|     const float dpi = [view.window backingScaleFactor]; |     if (view) | ||||||
|     io.DisplaySize = ImVec2((float)view.bounds.size.width, (float)view.bounds.size.height); |     { | ||||||
|     io.DisplayFramebufferScale = ImVec2(dpi, dpi); |         const float dpi = [view.window backingScaleFactor]; | ||||||
|  |         io.DisplaySize = ImVec2((float)view.bounds.size.width, (float)view.bounds.size.height); | ||||||
|  |         io.DisplayFramebufferScale = ImVec2(dpi, dpi); | ||||||
|  |     } | ||||||
|  |  | ||||||
|     // Setup time step |     // Setup time step | ||||||
|     if (g_Time == 0.0) |     if (g_Time == 0.0) | ||||||
| @@ -250,7 +253,7 @@ bool ImGui_ImplOSX_HandleEvent(NSEvent* event, NSView* view) | |||||||
|         for (int i = 0; i < len; i++) |         for (int i = 0; i < len; i++) | ||||||
|         { |         { | ||||||
|             int c = [str characterAtIndex:i]; |             int c = [str characterAtIndex:i]; | ||||||
|             if (!io.KeyCtrl && !(c >= 0xF700 && c <= 0xFFFF)) |             if (!io.KeyCtrl && !((c >= 0xF700 && c <= 0xFFFF) || c == 127)) | ||||||
|                 io.AddInputCharacter((unsigned int)c); |                 io.AddInputCharacter((unsigned int)c); | ||||||
|  |  | ||||||
|             // We must reset in case we're pressing a sequence of special keys while keeping the command pressed |             // We must reset in case we're pressing a sequence of special keys while keeping the command pressed | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user