From 8695aaa47766b481d6e54fc1d0407e9a87d4c3b6 Mon Sep 17 00:00:00 2001 From: Gellert Hegyi Date: Fri, 17 Jan 2025 13:23:37 +0100 Subject: [PATCH] fixes window dragging when window was not focused --- electron_drag_click.mm | 9 ++++++++- test/index.html | 7 +++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/electron_drag_click.mm b/electron_drag_click.mm index 5e620a30..f6fd76d3 100644 --- a/electron_drag_click.mm +++ b/electron_drag_click.mm @@ -27,15 +27,22 @@ NSView* viewUnderneathPoint(NSView* self, NSPoint point) { } NSView* swizzledHitTest(id obj, SEL sel, NSPoint point) { + NSView* view = obj; NSView* originalReturn = ((NSView*(*) (id, SEL, NSPoint))g_originalHitTest)(obj, sel, point); + // Do the original implementation when window is not focused, so window can be + // dragged immediately even, when not focused. + if (!view.window.isKeyWindow) { + return originalReturn; + } + objc_setAssociatedObject(obj, &kIsDraggableKey, @(originalReturn == nil), OBJC_ASSOCIATION_COPY_NONATOMIC); - NSView* viewUnderPoint = viewUnderneathPoint(obj, point); + NSView* viewUnderPoint = viewUnderneathPoint(view, point); return [viewUnderPoint hitTest:point]; } diff --git a/test/index.html b/test/index.html index 4fbf423b..b4d2b822 100644 --- a/test/index.html +++ b/test/index.html @@ -31,11 +31,14 @@ + + +