mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-10-31 05:01:05 +01:00 
			
		
		
		
	Fixed CTRL+Tab dimming background assert when target window has a callback in the last ImDrawCmd. (#4857, #5937)
This commit is contained in:
		| @@ -42,6 +42,8 @@ Breaking changes: | |||||||
|  |  | ||||||
| Other changes: | Other changes: | ||||||
|  |  | ||||||
|  | - Fixed CTRL+Tab dimming background assert when target window has a callback | ||||||
|  |   in the last ImDrawCmd. (#4857, #5937) | ||||||
| - InputText: Fixed a case where deactivation frame would write to underlying | - InputText: Fixed a case where deactivation frame would write to underlying | ||||||
|   buffer or call CallbackResize although unnecessary, in a frame where the |   buffer or call CallbackResize although unnecessary, in a frame where the | ||||||
|   return value was false. |   return value was false. | ||||||
|   | |||||||
| @@ -4917,14 +4917,14 @@ static void ImGui::RenderDimmedBackgroundBehindWindow(ImGuiWindow* window, ImU32 | |||||||
|         ImDrawList* draw_list = window->RootWindow->DrawList; |         ImDrawList* draw_list = window->RootWindow->DrawList; | ||||||
|         if (draw_list->CmdBuffer.Size == 0) |         if (draw_list->CmdBuffer.Size == 0) | ||||||
|             draw_list->AddDrawCmd(); |             draw_list->AddDrawCmd(); | ||||||
|         draw_list->PushClipRect(viewport_rect.Min - ImVec2(1, 1), viewport_rect.Max + ImVec2(1, 1), false); // Ensure ImDrawCmd are not merged |         draw_list->PushClipRect(viewport_rect.Min - ImVec2(1, 1), viewport_rect.Max + ImVec2(1, 1), false); // FIXME: Need to stricty ensure ImDrawCmd are not merged (ElemCount==6 checks below will verify that) | ||||||
|         draw_list->AddRectFilled(viewport_rect.Min, viewport_rect.Max, col); |         draw_list->AddRectFilled(viewport_rect.Min, viewport_rect.Max, col); | ||||||
|         ImDrawCmd cmd = draw_list->CmdBuffer.back(); |         ImDrawCmd cmd = draw_list->CmdBuffer.back(); | ||||||
|         IM_ASSERT(cmd.ElemCount == 6); |         IM_ASSERT(cmd.ElemCount == 6); | ||||||
|         draw_list->CmdBuffer.pop_back(); |         draw_list->CmdBuffer.pop_back(); | ||||||
|         draw_list->CmdBuffer.push_front(cmd); |         draw_list->CmdBuffer.push_front(cmd); | ||||||
|         draw_list->PopClipRect(); |  | ||||||
|         draw_list->AddDrawCmd(); // We need to create a command as CmdBuffer.back().IdxOffset won't be correct if we append to same command. |         draw_list->AddDrawCmd(); // We need to create a command as CmdBuffer.back().IdxOffset won't be correct if we append to same command. | ||||||
|  |         draw_list->PopClipRect(); | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user