Browse Source

Text: Fixed layouting of wrapped-text block when the last source line is above the clipping region. Regression added in 1.89. (#5720, #5919)

+ Update version marker
pull/5973/head
ocornut 2 years ago
parent
commit
bd96f6eac4
  1. 14
      docs/CHANGELOG.txt
  2. 2
      imgui.cpp
  3. 6
      imgui.h
  4. 2
      imgui_demo.cpp
  5. 7
      imgui_draw.cpp
  6. 2
      imgui_internal.h
  7. 2
      imgui_tables.cpp
  8. 2
      imgui_widgets.cpp

14
docs/CHANGELOG.txt

@ -31,12 +31,26 @@ HOW TO UPDATE?
- Please report any issue! - Please report any issue!
-----------------------------------------------------------------------
VERSION 1.89.2 WIP (In Progress)
-----------------------------------------------------------------------
Breaking changes:
Other changes:
- Text: Fixed layouting of wrapped-text block when the last source line is above the
clipping region. Regression added in 1.89. (#5720, #5919)
----------------------------------------------------------------------- -----------------------------------------------------------------------
VERSION 1.89.1 (Released 2022-11-24) VERSION 1.89.1 (Released 2022-11-24)
----------------------------------------------------------------------- -----------------------------------------------------------------------
Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.89.1 Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.89.1
Other changes:
- Scrolling, Focus: fixed SetKeyboardFocusHere()/SetItemDefaultFocus() during a window-appearing - Scrolling, Focus: fixed SetKeyboardFocusHere()/SetItemDefaultFocus() during a window-appearing
frame (and associated lower-level functions e.g. ScrollToRectEx()) from not centering item. (#5902) frame (and associated lower-level functions e.g. ScrollToRectEx()) from not centering item. (#5902)
- Inputs: fixed moving a window or drag and dropping from preventing input-owner-unaware code - Inputs: fixed moving a window or drag and dropping from preventing input-owner-unaware code

2
imgui.cpp

@ -1,4 +1,4 @@
// dear imgui, v1.89.1 // dear imgui, v1.89.2 WIP
// (main code and documentation) // (main code and documentation)
// Help: // Help:

6
imgui.h

@ -1,4 +1,4 @@
// dear imgui, v1.89.1 // dear imgui, v1.89.2 WIP
// (headers) // (headers)
// Help: // Help:
@ -22,8 +22,8 @@
// 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.1" #define IMGUI_VERSION "1.89.2 WIP"
#define IMGUI_VERSION_NUM 18910 #define IMGUI_VERSION_NUM 18911
#define IMGUI_HAS_TABLE #define IMGUI_HAS_TABLE
/* /*

2
imgui_demo.cpp

@ -1,4 +1,4 @@
// dear imgui, v1.89.1 // dear imgui, v1.89.2 WIP
// (demo code) // (demo code)
// Help: // Help:

7
imgui_draw.cpp

@ -1,4 +1,4 @@
// dear imgui, v1.89.1 // dear imgui, v1.89.2 WIP
// (drawing and font code) // (drawing and font code)
/* /*
@ -3565,17 +3565,18 @@ void ImFont::RenderText(ImDrawList* draw_list, float size, const ImVec2& pos, Im
while (y + line_height < clip_rect.y && s < text_end) while (y + line_height < clip_rect.y && s < text_end)
{ {
const char* line_end = (const char*)memchr(s, '\n', text_end - s); const char* line_end = (const char*)memchr(s, '\n', text_end - s);
const char* line_next = line_end ? line_end + 1 : text_end;
if (word_wrap_enabled) if (word_wrap_enabled)
{ {
// FIXME-OPT: This is not optimal as do first do a search for \n before calling CalcWordWrapPositionA(). // FIXME-OPT: This is not optimal as do first do a search for \n before calling CalcWordWrapPositionA().
// If the specs for CalcWordWrapPositionA() were reworked to optionally return on \n we could combine both. // If the specs for CalcWordWrapPositionA() were reworked to optionally return on \n we could combine both.
// However it is still better than nothing performing the fast-forward! // However it is still better than nothing performing the fast-forward!
s = CalcWordWrapPositionA(scale, s, line_end, wrap_width); s = CalcWordWrapPositionA(scale, s, line_next, wrap_width);
s = CalcWordWrapNextLineStartA(s, text_end); s = CalcWordWrapNextLineStartA(s, text_end);
} }
else else
{ {
s = line_end ? line_end + 1 : text_end; s = line_next;
} }
y += line_height; y += line_height;
} }

2
imgui_internal.h

@ -1,4 +1,4 @@
// dear imgui, v1.89.1 // dear imgui, v1.89.2 WIP
// (internal structures/api) // (internal structures/api)
// You may use this file to debug, understand or extend ImGui features but we don't provide any guarantee of forward compatibility! // You may use this file to debug, understand or extend ImGui features but we don't provide any guarantee of forward compatibility!

2
imgui_tables.cpp

@ -1,4 +1,4 @@
// dear imgui, v1.89.1 // dear imgui, v1.89.2 WIP
// (tables and columns code) // (tables and columns code)
/* /*

2
imgui_widgets.cpp

@ -1,4 +1,4 @@
// dear imgui, v1.89.1 // dear imgui, v1.89.2 WIP
// (widgets code) // (widgets code)
/* /*

Loading…
Cancel
Save