diff --git a/src/renderer/src/components/ui/popover-wheel-scroll.test.tsx b/src/renderer/src/components/ui/popover-wheel-scroll.test.tsx index 833b631f883..dcf1a804df5 100644 --- a/src/renderer/src/components/ui/popover-wheel-scroll.test.tsx +++ b/src/renderer/src/components/ui/popover-wheel-scroll.test.tsx @@ -218,7 +218,12 @@ describe('PopoverContent wheel shim', () => { }) it('respects descendant cancellation', () => { - const innerOnWheel = vi.fn((event: ReactWheelEvent) => event.preventDefault()) + const innerOnWheel = vi.fn((event: ReactWheelEvent) => { + // Model React's passive delegated wheel event: synthetic cancellation does not + // update the native event observed by the shim. + Object.defineProperty(event.nativeEvent, 'preventDefault', { value: vi.fn() }) + event.preventDefault() + }) renderPopover('popover-wheel-scroll', true, { innerOnWheel }) const viewport = document.querySelector('[data-testid="viewport"]')! viewport.style.overflowY = 'auto' @@ -227,7 +232,7 @@ describe('PopoverContent wheel shim', () => { const event = wheel(document.querySelector('[data-testid="inner"]')!, 120) expect(innerOnWheel).toHaveBeenCalledOnce() - expect(event.defaultPrevented).toBe(true) + expect(event.defaultPrevented).toBe(false) expect(viewport.scrollTop).toBe(0) }) diff --git a/src/renderer/src/components/ui/popover.tsx b/src/renderer/src/components/ui/popover.tsx index c25d2555cc4..01365ba665b 100644 --- a/src/renderer/src/components/ui/popover.tsx +++ b/src/renderer/src/components/ui/popover.tsx @@ -181,8 +181,8 @@ function PopoverContent({ WebkitAppRegion: 'no-drag' } as React.CSSProperties } - onWheel={onWheel ? handleConsumerWheel : undefined} - onWheelCapture={onWheelCapture ? handleConsumerWheelCapture : undefined} + onWheel={handleConsumerWheel} + onWheelCapture={handleConsumerWheelCapture} {...props} />