Scrolling, Inputs: using mouse wheel to scroll takes and keeps ownership of the corresponding keys while a wheeling window is locked.
Ref 4448d975d. (#2604, #3795)
This commit is contained in:
@@ -111,6 +111,8 @@ Other Changes:
|
|||||||
- Detect and report error when calling End() instead of EndPopup() on a popup. (#9351)
|
- Detect and report error when calling End() instead of EndPopup() on a popup. (#9351)
|
||||||
- Child windows with only ImGuiChildFlags_AutoResizeY flag keep using the proportional
|
- Child windows with only ImGuiChildFlags_AutoResizeY flag keep using the proportional
|
||||||
default ItemWidth. (#9355)
|
default ItemWidth. (#9355)
|
||||||
|
- Using mouse wheel to scroll takes and keeps ownership of the corresponding keys
|
||||||
|
(ImGuiKey_MouseWheelX/Y) while a wheeling window is locked. (#2604, #3795)
|
||||||
- InputInt, InputFloat, InputScalar: reinstated ImGuiInputTextFlags_EnterReturnsTrue
|
- InputInt, InputFloat, InputScalar: reinstated ImGuiInputTextFlags_EnterReturnsTrue
|
||||||
support which was removed in 1.91.4. (#8665, #9299, #8065, #3946, #6284, #9117)
|
support which was removed in 1.91.4. (#8665, #9299, #8065, #3946, #6284, #9117)
|
||||||
- Fixed the fact that it didn't return true when validating same value.
|
- Fixed the fact that it didn't return true when validating same value.
|
||||||
|
|||||||
@@ -10364,15 +10364,21 @@ void ImGui::UpdateMouseWheel()
|
|||||||
LockWheelingWindow(NULL, 0.0f);
|
LockWheelingWindow(NULL, 0.0f);
|
||||||
}
|
}
|
||||||
|
|
||||||
ImVec2 wheel;
|
|
||||||
wheel.x = TestKeyOwner(ImGuiKey_MouseWheelX, ImGuiKeyOwner_NoOwner) ? g.IO.MouseWheelH : 0.0f;
|
|
||||||
wheel.y = TestKeyOwner(ImGuiKey_MouseWheelY, ImGuiKeyOwner_NoOwner) ? g.IO.MouseWheel : 0.0f;
|
|
||||||
|
|
||||||
//IMGUI_DEBUG_LOG("MouseWheel X:%.3f Y:%.3f\n", wheel_x, wheel_y);
|
|
||||||
ImGuiWindow* mouse_window = g.WheelingWindow ? g.WheelingWindow : g.HoveredWindow;
|
ImGuiWindow* mouse_window = g.WheelingWindow ? g.WheelingWindow : g.HoveredWindow;
|
||||||
if (!mouse_window || mouse_window->Collapsed)
|
if (!mouse_window || mouse_window->Collapsed)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
ImGuiID owner_id = mouse_window->ID;
|
||||||
|
ImVec2 wheel;
|
||||||
|
wheel.x = TestKeyOwner(ImGuiKey_MouseWheelX, owner_id) ? g.IO.MouseWheelH : 0.0f;
|
||||||
|
wheel.y = TestKeyOwner(ImGuiKey_MouseWheelY, owner_id) ? g.IO.MouseWheel : 0.0f;
|
||||||
|
//IMGUI_DEBUG_LOG("MouseWheel X:%.3f Y:%.3f\n", wheel_x, wheel_y);
|
||||||
|
if (g.WheelingWindow != NULL)
|
||||||
|
{
|
||||||
|
SetKeyOwner(ImGuiKey_MouseWheelX, owner_id);
|
||||||
|
SetKeyOwner(ImGuiKey_MouseWheelY, owner_id);
|
||||||
|
}
|
||||||
|
|
||||||
// Zoom / Scale window
|
// Zoom / Scale window
|
||||||
// FIXME-OBSOLETE: This is an old feature, it still works but pretty much nobody is using it and may be best redesigned.
|
// FIXME-OBSOLETE: This is an old feature, it still works but pretty much nobody is using it and may be best redesigned.
|
||||||
if (wheel.y != 0.0f && g.IO.KeyCtrl && g.IO.FontAllowUserScaling)
|
if (wheel.y != 0.0f && g.IO.KeyCtrl && g.IO.FontAllowUserScaling)
|
||||||
|
|||||||
Reference in New Issue
Block a user