mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-10-31 13:11:05 +01:00 
			
		
		
		
	Tables: fixed calculation of multi-instance shared decoration/scrollbar width of scrolling tables. (#5920, #6619)
Avoid width variation when resizing down a table hosting a child window. + shallow tweak to GetContentRegionMax().
This commit is contained in:
		| @@ -64,6 +64,9 @@ Other changes: | |||||||
| - 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. | ||||||
|  | - Tables: fixed calculation of multi-instance shared decoration/scrollbar width of | ||||||
|  |   scrolling tables, to avoid flickering width variation when resizing down a table | ||||||
|  |   hosting a child window. (#5920, #6619) | ||||||
| - Scrollbar: layout needs to take account of window border size, so a border size | - Scrollbar: layout needs to take account of window border size, so a border size | ||||||
|   will slightly reduce scrollbar size. Generally we tried to make it that window |   will slightly reduce scrollbar size. Generally we tried to make it that window | ||||||
|   border size has no incidence on layout but this can't work with thick borders. (#2522) |   border size has no incidence on layout but this can't work with thick borders. (#2522) | ||||||
|   | |||||||
| @@ -6738,6 +6738,7 @@ bool ImGui::Begin(const char* name, bool* p_open, ImGuiWindowFlags flags) | |||||||
|  |  | ||||||
|         // [LEGACY] Content Region |         // [LEGACY] Content Region | ||||||
|         // FIXME-OBSOLETE: window->ContentRegionRect.Max is currently very misleading / partly faulty, but some BeginChild() patterns relies on it. |         // FIXME-OBSOLETE: window->ContentRegionRect.Max is currently very misleading / partly faulty, but some BeginChild() patterns relies on it. | ||||||
|  |         // Unless explicit content size is specified by user, this currently represent the region leading to no scrolling. | ||||||
|         // Used by: |         // Used by: | ||||||
|         // - Mouse wheel scrolling + many other things |         // - Mouse wheel scrolling + many other things | ||||||
|         window->ContentRegionRect.Min.x = window->Pos.x - window->Scroll.x + window->WindowPadding.x + window->DecoOuterSizeX1; |         window->ContentRegionRect.Min.x = window->Pos.x - window->Scroll.x + window->WindowPadding.x + window->DecoOuterSizeX1; | ||||||
| @@ -9773,10 +9774,10 @@ ImVec2 ImGui::GetContentRegionMax() | |||||||
| { | { | ||||||
|     ImGuiContext& g = *GImGui; |     ImGuiContext& g = *GImGui; | ||||||
|     ImGuiWindow* window = g.CurrentWindow; |     ImGuiWindow* window = g.CurrentWindow; | ||||||
|     ImVec2 mx = window->ContentRegionRect.Max - window->Pos; |     ImVec2 mx = window->ContentRegionRect.Max; | ||||||
|     if (window->DC.CurrentColumns || g.CurrentTable) |     if (window->DC.CurrentColumns || g.CurrentTable) | ||||||
|         mx.x = window->WorkRect.Max.x - window->Pos.x; |         mx.x = window->WorkRect.Max.x; | ||||||
|     return mx; |     return mx - window->Pos; | ||||||
| } | } | ||||||
|  |  | ||||||
| // [Internal] Absolute coordinate. Saner. This is not exposed until we finishing refactoring work rect features. | // [Internal] Absolute coordinate. Saner. This is not exposed until we finishing refactoring work rect features. | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								imgui.h
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								imgui.h
									
									
									
									
									
								
							| @@ -26,7 +26,7 @@ | |||||||
| // Library Version | // Library Version | ||||||
| // (Integer encoded as XYYZZ for use in #if preprocessor conditionals, e.g. '#if IMGUI_VERSION_NUM >= 12345') | // (Integer encoded as XYYZZ for use in #if preprocessor conditionals, e.g. '#if IMGUI_VERSION_NUM >= 12345') | ||||||
| #define IMGUI_VERSION       "1.89.8 WIP" | #define IMGUI_VERSION       "1.89.8 WIP" | ||||||
| #define IMGUI_VERSION_NUM   18973 | #define IMGUI_VERSION_NUM   18974 | ||||||
| #define IMGUI_HAS_TABLE | #define IMGUI_HAS_TABLE | ||||||
|  |  | ||||||
| /* | /* | ||||||
|   | |||||||
| @@ -410,7 +410,7 @@ bool    ImGui::BeginTableEx(const char* name, ImGuiID id, int columns_count, ImG | |||||||
|             table->HasScrollbarYPrev = table->HasScrollbarYCurr; |             table->HasScrollbarYPrev = table->HasScrollbarYCurr; | ||||||
|             table->HasScrollbarYCurr = false; |             table->HasScrollbarYCurr = false; | ||||||
|         } |         } | ||||||
|         table->HasScrollbarYCurr |= (table->InnerWindow->ScrollMax.y > 0.0f); |         table->HasScrollbarYCurr |= table->InnerWindow->ScrollbarY; | ||||||
|     } |     } | ||||||
|     else |     else | ||||||
|     { |     { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user