Browse Source

Backends: OSX: Fixed mouse coordinate before clicking on the host window. (#5842)

Akira Maezawa 2 years ago
parent
commit
86f2af2bc7
2 changed files with 4 additions and 0 deletions
  1. 3 0
      backends/imgui_impl_osx.mm
  2. 1 0
      docs/CHANGELOG.txt

+ 3 - 0
backends/imgui_impl_osx.mm

@@ -23,6 +23,7 @@
 
 // CHANGELOG
 // (minor and older changes stripped away, please see git history for details)
+//  2022-11-02: Fixed mouse coordinates before clicking the host window.
 //  2022-10-06: Fixed mouse inputs on flipped views.
 //  2022-09-26: Inputs: Renamed ImGuiKey_ModXXX introduced in 1.87 to ImGuiMod_XXX (old names still supported).
 //  2022-05-03: Inputs: Removed ImGui_ImplOSX_HandleEvent() from backend API in favor of backend automatically handling event capture.
@@ -631,6 +632,8 @@ static bool ImGui_ImplOSX_HandleEvent(NSEvent* event, NSView* view)
     if (event.type == NSEventTypeMouseMoved || event.type == NSEventTypeLeftMouseDragged || event.type == NSEventTypeRightMouseDragged || event.type == NSEventTypeOtherMouseDragged)
     {
         NSPoint mousePoint = event.locationInWindow;
+        if (event.window == nil)
+            mousePoint = [[view window] convertPointFromScreen:mousePoint];
         mousePoint = [view convertPoint:mousePoint fromView:nil];
         if ([view isFlipped])
             mousePoint = NSMakePoint(mousePoint.x, mousePoint.y);

+ 1 - 0
docs/CHANGELOG.txt

@@ -193,6 +193,7 @@ Other Changes:
 - Backends: Metal: Update deprecated property 'sampleCount'->'rasterSampleCount'. (#5603) [@dcvz]
 - Backends: Vulkan: Added experimental ImGui_ImplVulkan_RemoveTexture() for api symetry. (#914, #5738).
 - Backends: OSX: Fixed mouse inputs on flipped views. (#5756) [@Nemirtingas]
+- Backends: OSX: Fixed mouse coordinate before clicking on the host window. (#5842) [@maezawa-akira]
 - Backends: OSX: Fixes to support full app creation in C++. (#5403) [@stack]