From e346059eef140c5a8611581f3e6c8b8816d6998e Mon Sep 17 00:00:00 2001 From: ocornut Date: Wed, 18 May 2022 14:16:02 +0200 Subject: [PATCH] IO: Fixed input queue trickling of mouse wheel events. (#4921, #4821) --- docs/CHANGELOG.txt | 2 ++ imgui.cpp | 2 +- imgui.h | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/CHANGELOG.txt b/docs/CHANGELOG.txt index 5400e048..1ae3b085 100644 --- a/docs/CHANGELOG.txt +++ b/docs/CHANGELOG.txt @@ -58,6 +58,8 @@ Other Changes: Not that even thought you shouldn't need to disable io.ConfigInputTrickleEventQueue, you can technically dynamically change its setting based on the context (e.g. disable only when hovering or interacting with a game/3D view). +- IO: Fixed input queue trickling of mouse wheel events: multiple wheel events are merged, while + a mouse pos followed by a mouse wheel are now trickled. (#4921, #4821) - Windows: Fixed first-time windows appearing in negative coordinates from being initialized with a wrong size. This would most often be noticeable in multi-viewport mode (docking branch) when spawning a window in a monitor with negative coordinates. (#5215, #3414) [@DimaKoltun] diff --git a/imgui.cpp b/imgui.cpp index 2075f1c6..f8a2375f 100644 --- a/imgui.cpp +++ b/imgui.cpp @@ -7851,7 +7851,7 @@ void ImGui::UpdateInputEvents(bool trickle_fast_inputs) if (e->MouseWheel.WheelX != 0.0f || e->MouseWheel.WheelY != 0.0f) { // Trickling Rule: Stop processing queued events if we got multiple action on the event - if (trickle_fast_inputs && (mouse_wheeled || mouse_button_changed != 0)) + if (trickle_fast_inputs && (mouse_moved || mouse_button_changed != 0)) break; io.MouseWheelH += e->MouseWheel.WheelX; io.MouseWheel += e->MouseWheel.WheelY; diff --git a/imgui.h b/imgui.h index d599199c..7db6d1ef 100644 --- a/imgui.h +++ b/imgui.h @@ -65,7 +65,7 @@ Index of this file: // Version // (Integer encoded as XYYZZ for use in #if preprocessor conditionals. Work in progress versions typically starts at XYY99 then bounce up to XYY00, XYY01 etc. when release tagging happens) #define IMGUI_VERSION "1.88 WIP" -#define IMGUI_VERSION_NUM 18721 +#define IMGUI_VERSION_NUM 18722 #define IMGUI_CHECKVERSION() ImGui::DebugCheckVersionAndDataLayout(IMGUI_VERSION, sizeof(ImGuiIO), sizeof(ImGuiStyle), sizeof(ImVec2), sizeof(ImVec4), sizeof(ImDrawVert), sizeof(ImDrawIdx)) #define IMGUI_HAS_TABLE