1c951dca97 
								
							
								 
							
						 
						
							
							
								
								Font: Narrow ellipsis: once we know an ellipsis is going to be drawn, we can claim the space between pos_max.x and ellipsis_max.x which gives us enough extra space to not requires the further (and otherwise valid) optimizations. Gets us vastly simplified code, yay. ( #2775 )  
							
							
 
							
						 
						
							ago%!(EXTRA string=6 years)  
				
					
						
							
							
								 
						
							
							
								57623c15dd 
								
							
								 
							
						 
						
							
							
								
								Font: Narrow ellipsis: various minor stylistic tweaks ( #2775 )  
							
							
 
							
						 
						
							ago%!(EXTRA string=6 years)  
				
					
						
							
							
								 
						
							
							
								45405f0dc9 
								
							
								 
							
						 
						
							
							
								
								Font: implement a way to draw narrow ellipsis without relying on hardcoded 1 pixel dots. ( #2775 )  
							
							... 
							
							
 
							
							This changeset implements several pieces of the puzzle that add up to a narrow ellipsis rendering.
## EllipsisCodePoint
`ImFontConfig` and `ImFont` received `ImWchar EllipsisCodePoint = -1;` field. User may configure `ImFontConfig::EllipsisCodePoint` a unicode codepoint that will be used for rendering narrow ellipsis. Not setting this field will automatically detect a suitable character or fall back to rendering 3 dots with minimal spacing between them. Autodetection prefers codepoint 0x2026 (narrow ellipsis) and falls back to 0x0085 (NEXT LINE) when missing. Wikipedia indicates that codepoint 0x0085 was used as ellipsis in some older windows fonts. So does default Dear ImGui font. When user is merging fonts - first configured and present ellipsis codepoint will be used, ellipsis characters from subsequently merged fonts will be ignored.
## Narrow ellipsis
Rendering a narrow ellipsis is surprisingly not straightforward task. There are cases when ellipsis is bigger than the last visible character therefore `RenderTextEllipsis()` has to hide last two characters. In a subset of those cases ellipsis is as big as last visible character + space before it. `RenderTextEllipsis()` tries to work around this case by taking free space between glyph edges into account. Code responsible for this functionality is within `if (text_end_ellipsis != text_end_full) { ... }`.
## Fallback (manually rendered dots)
There are cases when font does not have ellipsis character defined. In this case RenderTextEllipsis() falls back to rendering ellipsis as 3 dots, but with reduced spacing between them. 1 pixel space is used in all cases. This results in a somewhat wider ellipsis, but avoids issues where spaces between dots are uneven (visible in larger/monospace fonts) or squish dots way too much (visible in default font where dot is essentially a pixel). This fallback method obsoleted `RenderPixelEllipsis()` and this function was removed. Note that fallback ellipsis will always be somewhat wider than it could be, however it will fit in visually into every font used unlike what `RenderPixelEllipsis()` produced. 
							
						 
						
							ago%!(EXTRA string=6 years)  
				
					
						
							
							
								 
						
							
							
								404dc0367e 
								
							
								 
							
						 
						
							
							
								
								BeginTabItem: Fixed case where right-most tab would create an extraneous draw calls (probably related to other tab fitting code in 1.73 wip)  
							
							
 
							
						 
						
							ago%!(EXTRA string=6 years)  
				
					
						
							
							
								 
						
							
							
								e7e88ed413 
								
							
								 
							
						 
						
							
							
								
								Examples: SDL/GLFW + OpenGL3: Fixes for Makefile ( #2774 )  
							
							... 
							
							
 
							
							- append CXXFLAGS instead of overwriting them
- add glad.c build rule 
							
						 
						
							ago%!(EXTRA string=6 years)  
				
					
						
							
							
								 
						
							
							
								561e7dd490 
								
							
								 
							
						 
						
							
							
								
								Fix signed types warning in pasteboard handler ( #2786 )  
							
							
 
							
						 
						
							ago%!(EXTRA string=6 years)  
				
					
						
							
							
								 
						
							
							
								3dcf323c35 
								
							
								 
							
						 
						
							
							
								
								Columns: Separator: Fixed a bug where non-visible separators within columns would alter the next row position differently than visible ones.  
							
							... 
							
							
 
							
							Fixed rounding issues also leading to change of ScrollMax depending on visible items (in particular negative coordinate would be rounded differently) 
							
						 
						
							ago%!(EXTRA string=6 years)  
				
					
						
							
							
								 
						
							
							
								b05f6f6f50 
								
							
								 
							
						 
						
							
							
								
								Nav, Scrolling: Added support for Home/End key. ( #787 )  
							
							
 
							
						 
						
							ago%!(EXTRA string=6 years)  
				
					
						
							
							
								 
						
							
							
								3cf519c9cb 
								
							
								 
							
						 
						
							
							
								
								Fix DragScalar for unsigned types ( #2780 )  
							
							... 
							
							
 
							
							decreasing the value was broken on arm64 
							
						 
						
							ago%!(EXTRA string=6 years)  
				
					
						
							
							
								 
						
							
							
								cc288e073c 
								
							
								 
							
						 
						
							
							
								
								Backends: OpenGL3: Tweaked initialization code allow application calling ImGui_ImplOpenGL3_CreateFontsTexture() before ImGui_ImplOpenGL3_NewFrame() if for some reason they wanted.  
							
							
 
							
						 
						
							ago%!(EXTRA string=6 years)  
				
					
						
							
							
								 
						
							
							
								c077dd4872 
								
							
								 
							
						 
						
							
							
								
								Fixed missing IMGUI_API for IsMouseDragPastThreshold().  
							
							
 
							
						 
						
							ago%!(EXTRA string=6 years)  
				
					
						
							
							
								 
						
							
							
								0537ac005f 
								
							
								 
							
						 
						
							
							
								
								ColorEdit: Disable Hue edit when Saturation==0 instead of letting Hue values jump around.  
							
							
 
							
						 
						
							ago%!(EXTRA string=6 years)  
				
					
						
							
							
								 
						
							
							
								b59ec7b9b7 
								
							
								 
							
						 
						
							
							
								
								DragInt, DragFloat, DragScalar: Using (v_min > v_max) allows locking any edit to the value.  
							
							
 
							
						 
						
							ago%!(EXTRA string=6 years)  
				
					
						
							
							
								 
						
							
							
								3f99890f40 
								
							
								 
							
						 
						
							
							
								
								TabBar: feed desired width (sum of unclipped tabs width) into layout system to allow for auto-resize. ( #2768 )  
							
							... 
							
							
 
							
							Before 1.71 tab bars fed the sum of current width which created feedback loops in certain situations. Amend f95c77eeea 
							
						 
						
							ago%!(EXTRA string=6 years)  
				
					
						
							
							
								 
						
							
							
								f8d3d8d7f5 
								
							
								 
							
						 
						
							
							
								
								TabBar: improved shrinking for large number of tabs to avoid leaving extraneous space on the right side. Individuals tabs are given integer-rounded width and remainder is spread between tabs left-to-right.  
							
							
 
							
						 
						
							ago%!(EXTRA string=6 years)  
				
					
						
							
							
								 
						
							
							
								bfcdaeb610 
								
							
								 
							
						 
						
							
							
								
								Disable with ConfigWindowsMemoryCompactTimer < 0.0f ( #2636 )  
							
							
 
							
						 
						
							ago%!(EXTRA string=6 years)  
				
					
						
							
							
								 
						
							
							
								62f75c7fb1 
								
							
								 
							
						 
						
							
							
								
								Added a mechanism to compact/free the larger allocations of unused windows (buffers are compacted when a window is unused for 60 seconds, as per io.ConfigWindowsMemoryCompactTimer = 60.0f). Note that memory usage has never been reported as a problem, so this is merely a touch of overzealous luxury. ( #2636 )  
							
							
 
							
						 
						
							ago%!(EXTRA string=6 years)  
				
					
						
							
							
								 
						
							
							
								45a0db5979 
								
							
								 
							
						 
						
							
							
								
								Demo: PlotLine example displays the average value. ( #2759 ) + extra comments  
							
							
 
							
						 
						
							ago%!(EXTRA string=6 years)  
				
					
						
							
							
								 
						
							
							
								c8418015c2 
								
							
								 
							
						 
						
							
							
								
								SliderScalar: Improved assert when using U32 or U64 types with a large v_max value. ( #2765 )  
							
							... 
							
							
 
							
							+  misc minor stuff. 
							
						 
						
							ago%!(EXTRA string=6 years)  
				
					
						
							
							
								 
						
							
							
								bcdb89ab07 
								
							
								 
							
						 
						
							
							
								
								Rebased imstb_rectpack on stb_rect_pack v1.00.  
							
							
 
							
						 
						
							ago%!(EXTRA string=6 years)  
				
					
						
							
							
								 
						
							
							
								cb538fadfe 
								
							
								 
							
						 
						
							
							
								
								Internals: Storing settings using ImVec2ih to match what we are doing with dock node. + removed ImMax from reading Size value (done in Begin) + removed seemingly unnecessary FLT_MAX compare in SettingsHandlerWindow_WriteAll.  
							
							... 
							
							
 
							
							About: Added backquote to text copied into clipboard so it doesn't mess up with github formatting when pasted. 
							
						 
						
							ago%!(EXTRA string=6 years)  
				
					
						
							
							
								 
						
							
							
								c4ff1b3578 
								
							
								 
							
						 
						
							
							
								
								ImDrawList: clarified the name of many parameters so reading the code is a little easier. ( #2740 )  
							
							
 
							
						 
						
							ago%!(EXTRA string=6 years)  
				
					
						
							
							
								 
						
							
							
								3fb5cf3541 
								
							
								 
							
						 
						
							
							
								
								Using offsetof() when available in C++11. Avoids Clang sanitizer complaining about old-style macros. ( #94 )  
							
							
 
							
						 
						
							ago%!(EXTRA string=6 years)  
				
					
						
							
							
								 
						
							
							
								c4b0bf718a 
								
							
								 
							
						 
						
							
							
								
								More typos in comments ( #2738 )  
							
							
 
							
						 
						
							ago%!(EXTRA string=6 years)  
				
					
						
							
							
								 
						
							
							
								a856c670c1 
								
							
								 
							
						 
						
							
							
								
								TabBar: fixed single-tab not shrinking their width down.  
							
							... 
							
							
 
							
							+ minor typo fixes (#2738 ) 
							
						 
						
							ago%!(EXTRA string=6 years)  
				
					
						
							
							
								 
						
							
							
								a33cedda14 
								
							
								 
							
						 
						
							
							
								
								Internals: Renaming window size calc functions.  
							
							
 
							
						 
						
							ago%!(EXTRA string=6 years)  
				
					
						
							
							
								 
						
							
							
								7abd41bd5f 
								
							
								 
							
						 
						
							
							
								
								TabBar: fixed ScrollToBar request creating bouncing loop when tab is larger than available space.  
							
							
 
							
						 
						
							ago%!(EXTRA string=6 years)  
				
					
						
							
							
								 
						
							
							
								9fce278918 
								
							
								 
							
						 
						
							
							
								
								ColorPicker: Made rendering aware of global style alpha of the picker can be faded out. ( #2711 )  
							
							... 
							
							
 
							
							Note that some elements won't accurately fade down with the same intensity, and the color wheel when enabled will have small overlap glitches with (style.Alpha < 1.0). 
							
						 
						
							ago%!(EXTRA string=6 years)  
				
					
						
							
							
								 
						
							
							
								88bf056a9f 
								
							
								 
							
						 
						
							
							
								
								Removing Funding file (unnecessary as we'll switch services)  
							
							
 
							
						 
						
							ago%!(EXTRA string=6 years)  
				
					
						
							
							
								 
						
							
							
								7d2cfa6ff1 
								
									
								
							
								 
							
						 
						
							
							
								
								Create FUNDING.yml  
							
							
 
							
						 
						
							ago%!(EXTRA string=6 years)  
				
					
						
							
							
								 
						
							
							
								2e756d5b47 
								
							
								 
							
						 
						
							
							
								
								Explicit narrowing cast from size_t to UINT ( #2726 )  
							
							... 
							
							
 
							
							Clang: `non-constant-expression cannot be narrowed from type 'size_t' (aka 'unsigned long long') to 'UINT' (aka 'unsigned int') in initializer list [-Wc++11-narrowing]` 
							
						 
						
							ago%!(EXTRA string=6 years)  
				
					
						
							
							
								 
						
							
							
								62143dff64 
								
							
								 
							
						 
						
							
							
								
								Backends: Vulkan: Added support for specifying multisample count. ( #2705 ,  #2706 )  
							
							
 
							
						 
						
							ago%!(EXTRA string=6 years)  
				
					
						
							
							
								 
						
							
							
								6cf4743f17 
								
							
								 
							
						 
						
							
							
								
								Backends: DX11: Fixed GSGetShader() call not passing an initialized instance count, would generally make the debug layer complain (Added in 1.72).  
							
							
 
							
						 
						
							ago%!(EXTRA string=6 years)  
				
					
						
							
							
								 
						
							
							
								f624455d7b 
								
							
								 
							
						 
						
							
							
								
								Version 1.73 WIP  
							
							
 
							
						 
						
							ago%!(EXTRA string=6 years)  
				
					
						
							
							
								 
						
							
							
								9bd7846f07 
								
							
								 
							
						 
						
							
							
								
								Internal: Made ScrollToBringRectIntoView() handle recursing back to scroll parent window, so the function can be called elsewhere (instead of 1 deep recursion done in NavUpdateMoveResult().  
							
							
 
							
						 
						
							ago%!(EXTRA string=6 years)  
				
					
						
							
							
								 
						
							
							
								6a0d0dab5a 
								
							
								 
							
						 
						
							
							
								
								Version 1.72b (patch for nav)  
							
							
 
							
						 
						
							ago%!(EXTRA string=6 years)  
				
					
						
							
							
								 
						
							
							
								27079e68c2 
								
							
								 
							
						 
						
							
							
								
								Nav: Made hovering non-MenuItem Selectable not re-assign the source item for keyboard navigation.  
							
							
 
							
						 
						
							ago%!(EXTRA string=6 years)  
				
					
						
							
							
								 
						
							
							
								4cfaf7d89c 
								
							
								 
							
						 
						
							
							
								
								Scrolling, Nav: Fixed programmatic scroll leading to a slightly incorrect scroll offset when the window has decorations or a menu-bar (broken in 1.71). This was mostly noticeable when a keyboard/gamepad movement led to scrolling the view, or using e.g. SetScrollHereY() function. Fix/amend  a0994d74.  
							
							
 
							
						 
						
							ago%!(EXTRA string=6 years)  
				
					
						
							
							
								 
						
							
							
								3548fb8013 
								
							
								 
							
						 
						
							
							
								
								Internal refactor: moved all Scroll related functions in a same spot.  
							
							
 
							
						 
						
							ago%!(EXTRA string=6 years)  
				
					
						
							
							
								 
						
							
							
								1b1e539288 
								
							
								 
							
						 
						
							
							
								
								Internal: Moved NavScrollToBringItemIntoView() declaration to imgui_internal.h. Fixed spacing missing in  494d804. Fixed changelog wreck from 1.72.  
							
							
 
							
						 
						
							ago%!(EXTRA string=6 years)  
				
					
						
							
							
								 
						
							
							
								5ef7445d92 
								
							
								 
							
						 
						
							
							
								
								Internal: Avoid using GImGui multiple times in same function.  
							
							
 
							
						 
						
							ago%!(EXTRA string=6 years)  
				
					
						
							
							
								 
						
							
							
								494d804735 
								
							
								 
							
						 
						
							
							
								
								Internal: Added ImGuiInputTextState::ClearText() helper.  
							
							
 
							
						 
						
							ago%!(EXTRA string=6 years)  
				
					
						
							
							
								 
						
							
							
								85ad8e0e2e 
								
							
								 
							
						 
						
							
							
								
								Nav: Fixed an issue with NavFlattened window flag where widgets not entirely fitting in child window (often selectable because of their extruded bits) would be not considered to navigate toward the child window. ( #787 )  
							
							... 
							
							
 
							
							This creates a little bit of tension because g.NavDisableHighlight tends to makes the reference point not always visible.
Amend c665c15a7d 
							
						 
						
							ago%!(EXTRA string=6 years)  
				
					
						
							
							
								 
						
							
							
								9183e7c426 
								
							
								 
							
						 
						
							
							
								
								Version 1.73 WIP  
							
							
 
							
						 
						
							ago%!(EXTRA string=6 years)  
				
					
						
							
							
								 
						
							
							
								ecb9b1e2eb 
								
							
								 
							
						 
						
							
							
								
								Version 1.72  
							
							
 
							
						 
						
							ago%!(EXTRA string=6 years)  
				
					
						
							
							
								 
						
							
							
								7a26a49f08 
								
							
								 
							
						 
						
							
							
								
								Internal: Added IsMouseDragPastThreshold(). Tweaks. Todo.  
							
							... 
							
							
 
							
							Demo: Showing how to use the format parameter of Slider/Drag functions to display the name of an enum value instead of the underlying integer value 
							
						 
						
							ago%!(EXTRA string=6 years)  
				
					
						
							
							
								 
						
							
							
								d057550209 
								
							
								 
							
						 
						
							
							
								
								Fixed Clang 8.0 warning "empty expression statement has no effect; remove unnecessary ';' to silence this"  warning [-Wextra-semi-stmt]  
							
							... 
							
							
 
							
							+ Comment 
							
						 
						
							ago%!(EXTRA string=6 years)  
				
					
						
							
							
								 
						
							
							
								824e8c53b4 
								
							
								 
							
						 
						
							
							
								
								Internals: Added IMGUI_DEBUG_INI_SETTINGS. Made IMGUI_DEBUG_LOG redefinable in imconfig.h. Comments. Fix to allow Metrics's NodeWindow() being called with a NULL window.  
							
							
 
							
						 
						
							ago%!(EXTRA string=6 years)  
				
					
						
							
							
								 
						
							
							
								baae057a03 
								
							
								 
							
						 
						
							
							
								
								Internals: Merge in minor noise from wip Tables branch to simplify further merging.  
							
							
 
							
						 
						
							ago%!(EXTRA string=6 years)  
				
					
						
							
							
								 
						
							
							
								51853292cc 
								
							
								 
							
						 
						
							
							
								
								ImDrawList: Using ImDrawCornerFlags instead of int in various apis.  
							
							... 
							
							
 
							
							Demo: Using ImGuiColorEditrFlags instead of int. 
							
						 
						
							ago%!(EXTRA string=6 years)