From 3d8ea352d1f11e9ae2dc6fe4ff457106bb1f224c Mon Sep 17 00:00:00 2001 From: omar Date: Mon, 25 Mar 2019 16:06:30 +0100 Subject: [PATCH] InputText: Fixed selection background starts rendering one frame after the cursor movement when first transitioning from no-selection to has-selection. (Bug in 1.69) (#2436) [@Nazg-Gul] --- docs/CHANGELOG.txt | 2 ++ imgui_widgets.cpp | 3 +++ 2 files changed, 5 insertions(+) diff --git a/docs/CHANGELOG.txt b/docs/CHANGELOG.txt index f87ae2f3..f1c556a6 100644 --- a/docs/CHANGELOG.txt +++ b/docs/CHANGELOG.txt @@ -36,6 +36,8 @@ HOW TO UPDATE? Breaking Changes: Other Changes: +- InputText: Fixed selection background starts rendering one frame after the cursor movement + when first transitioning from no-selection to has-selection. (Bug in 1.69) (#2436) [@Nazg-Gul] - GetMouseDragDelta(): also returns the delta on the mouse button released frame. (#2419) - GetMouseDragDelta(): verify that mouse positions are valid otherwise returns zero. - Examples: OpenGL: Added a dummy GL call + comments in ImGui_ImplOpenGL3_Init() to detect uninitialized diff --git a/imgui_widgets.cpp b/imgui_widgets.cpp index 1f51e07a..f151e119 100644 --- a/imgui_widgets.cpp +++ b/imgui_widgets.cpp @@ -3570,6 +3570,9 @@ bool ImGui::InputTextEx(const char* label, const char* hint, char* buf, int buf_ MemFree(clipboard_filtered); } } + + // Update render selection flag after events have been handled, so selection highlight can be displayed during the same frame. + render_selection |= state->HasSelection() && (RENDER_SELECTION_WHEN_INACTIVE || render_cursor); } // Process callbacks and apply result back to user's buffer.