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 @@ + + +