Diff
Modified: branches/safari-600.4-branch/Source/WebCore/ChangeLog (179152 => 179153)
--- branches/safari-600.4-branch/Source/WebCore/ChangeLog 2015-01-27 00:19:12 UTC (rev 179152)
+++ branches/safari-600.4-branch/Source/WebCore/ChangeLog 2015-01-27 00:19:15 UTC (rev 179153)
@@ -1,3 +1,18 @@
+2015-01-26 Matthew Hanson <[email protected]>
+
+ Merge r179014. rdar://problem/19573674
+
+ 2015-01-23 Timothy Horton <[email protected]>
+
+ QLPreviewMenuItem popovers don't close when the page scrolls
+ https://bugs.webkit.org/show_bug.cgi?id=140806
+ <rdar://problem/19555618>
+
+ Reviewed by Beth Dakin.
+
+ * platform/spi/mac/QuickLookMacSPI.h:
+ Add some SPI.
+
2015-01-20 Matthew Hanson <[email protected]>
Rollout r178679. rdar://problem/19448129
Modified: branches/safari-600.4-branch/Source/WebCore/platform/spi/mac/QuickLookMacSPI.h (179152 => 179153)
--- branches/safari-600.4-branch/Source/WebCore/platform/spi/mac/QuickLookMacSPI.h 2015-01-27 00:19:12 UTC (rev 179152)
+++ branches/safari-600.4-branch/Source/WebCore/platform/spi/mac/QuickLookMacSPI.h 2015-01-27 00:19:15 UTC (rev 179153)
@@ -46,6 +46,8 @@
QLPreviewStylePopover
};
+- (void)close;
+
@property (assign) id<QLPreviewMenuItemDelegate> delegate;
@property QLPreviewStyle previewStyle;
@end
Modified: branches/safari-600.4-branch/Source/WebKit/mac/ChangeLog (179152 => 179153)
--- branches/safari-600.4-branch/Source/WebKit/mac/ChangeLog 2015-01-27 00:19:12 UTC (rev 179152)
+++ branches/safari-600.4-branch/Source/WebKit/mac/ChangeLog 2015-01-27 00:19:15 UTC (rev 179153)
@@ -1,5 +1,30 @@
2015-01-26 Matthew Hanson <[email protected]>
+ Merge r179014. rdar://problem/19573674
+
+ 2015-01-23 Timothy Horton <[email protected]>
+
+ QLPreviewMenuItem popovers don't close when the page scrolls
+ https://bugs.webkit.org/show_bug.cgi?id=140806
+ <rdar://problem/19555618>
+
+ Reviewed by Beth Dakin.
+
+ Now that QLPreviewMenuItem's popover doesn't eat scrolls, we need to dismiss it if the page scrolls.
+
+ * WebView/WebHTMLView.mm:
+ (-[WebHTMLView scrollWheel:scrollWheel:]):
+ Send scrollWheel along to WebImmediateActionController.
+
+ * WebView/WebImmediateActionController.h:
+ * WebView/WebImmediateActionController.mm:
+ (-[WebImmediateActionController webView:didHandleScrollWheel:]):
+ (-[WebImmediateActionController _clearImmediateActionState]):
+ (-[WebImmediateActionController _defaultAnimationController]):
+ Keep track of the active QLPreviewMenuItem, and close it upon scroll.
+
+2015-01-26 Matthew Hanson <[email protected]>
+
Merge r179013. rdar://problem/19571601
2015-01-23 Timothy Horton <[email protected]>
Modified: branches/safari-600.4-branch/Source/WebKit/mac/WebView/WebHTMLView.mm (179152 => 179153)
--- branches/safari-600.4-branch/Source/WebKit/mac/WebView/WebHTMLView.mm 2015-01-27 00:19:12 UTC (rev 179152)
+++ branches/safari-600.4-branch/Source/WebKit/mac/WebView/WebHTMLView.mm 2015-01-27 00:19:15 UTC (rev 179153)
@@ -3778,6 +3778,7 @@
#if PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101000
[[[self _webView] _actionMenuController] webView:[self _webView] didHandleScrollWheel:event];
+ [[[self _webView] _immediateActionController] webView:[self _webView] didHandleScrollWheel:event];
#endif
}
Modified: branches/safari-600.4-branch/Source/WebKit/mac/WebView/WebImmediateActionController.h (179152 => 179153)
--- branches/safari-600.4-branch/Source/WebKit/mac/WebView/WebImmediateActionController.h 2015-01-27 00:19:12 UTC (rev 179152)
+++ branches/safari-600.4-branch/Source/WebKit/mac/WebView/WebImmediateActionController.h 2015-01-27 00:19:15 UTC (rev 179153)
@@ -31,6 +31,7 @@
#import <wtf/RetainPtr.h>
@class DDActionContext;
+@class QLPreviewMenuItem;
@class WebView;
@interface WebImmediateActionController : NSObject <NSImmediateActionGestureRecognizerDelegate> {
@@ -40,6 +41,7 @@
WebCore::HitTestResult _hitTestResult;
RetainPtr<NSImmediateActionGestureRecognizer> _immediateActionRecognizer;
+ RetainPtr<QLPreviewMenuItem> _currentQLPreviewMenuItem;
RetainPtr<DDActionContext> _currentActionContext;
BOOL _isShowingTextIndicator;
BOOL _hasActivatedActionContext;
@@ -49,6 +51,7 @@
- (void)webViewClosed;
- (void)webView:(WebView *)webView willHandleMouseDown:(NSEvent *)event;
+- (void)webView:(WebView *)webView didHandleScrollWheel:(NSEvent *)event;
@end
Modified: branches/safari-600.4-branch/Source/WebKit/mac/WebView/WebImmediateActionController.mm (179152 => 179153)
--- branches/safari-600.4-branch/Source/WebKit/mac/WebView/WebImmediateActionController.mm 2015-01-27 00:19:12 UTC (rev 179152)
+++ branches/safari-600.4-branch/Source/WebKit/mac/WebView/WebImmediateActionController.mm 2015-01-27 00:19:15 UTC (rev 179153)
@@ -98,6 +98,12 @@
[self _clearImmediateActionState];
}
+- (void)webView:(WebView *)webView didHandleScrollWheel:(NSEvent *)event
+{
+ [_currentQLPreviewMenuItem close];
+ [self _clearImmediateActionState];
+}
+
- (void)_cancelImmediateAction
{
// Reset the recognizer by turning it off and on again.
@@ -121,6 +127,7 @@
_type = WebImmediateActionNone;
_currentActionContext = nil;
+ _currentQLPreviewMenuItem = nil;
}
- (void)performHitTestAtPoint:(NSPoint)viewPoint
@@ -211,6 +218,7 @@
RetainPtr<QLPreviewMenuItem> qlPreviewLinkItem = [NSMenuItem standardQuickLookMenuItem];
[qlPreviewLinkItem setPreviewStyle:QLPreviewStylePopover];
[qlPreviewLinkItem setDelegate:self];
+ _currentQLPreviewMenuItem = qlPreviewLinkItem.get();
return (id <NSImmediateActionAnimationController>)qlPreviewLinkItem.get();
}
Modified: branches/safari-600.4-branch/Source/WebKit2/ChangeLog (179152 => 179153)
--- branches/safari-600.4-branch/Source/WebKit2/ChangeLog 2015-01-27 00:19:12 UTC (rev 179152)
+++ branches/safari-600.4-branch/Source/WebKit2/ChangeLog 2015-01-27 00:19:15 UTC (rev 179153)
@@ -1,5 +1,30 @@
2015-01-26 Matthew Hanson <[email protected]>
+ Merge r179014. rdar://problem/19573674
+
+ 2015-01-23 Timothy Horton <[email protected]>
+
+ QLPreviewMenuItem popovers don't close when the page scrolls
+ https://bugs.webkit.org/show_bug.cgi?id=140806
+ <rdar://problem/19555618>
+
+ Reviewed by Beth Dakin.
+
+ Now that QLPreviewMenuItem's popover doesn't eat scrolls, we need to dismiss it if the page scrolls.
+
+ * UIProcess/API/mac/WKView.mm:
+ (-[WKView _dismissContentRelativeChildWindows]):
+ Send _dismissContentRelativeChildWindows on to WKImmediateActionController.
+
+ * UIProcess/mac/WKImmediateActionController.h:
+ * UIProcess/mac/WKImmediateActionController.mm:
+ (-[WKImmediateActionController _clearImmediateActionState]):
+ (-[WKImmediateActionController dismissContentRelativeChildWindows]):
+ (-[WKImmediateActionController _defaultAnimationController]):
+ Keep track of the active QLPreviewMenuItem, and close it upon scroll.
+
+2015-01-26 Matthew Hanson <[email protected]>
+
Merge r179013. rdar://problem/19571601
2015-01-23 Timothy Horton <[email protected]>
Modified: branches/safari-600.4-branch/Source/WebKit2/UIProcess/API/mac/WKView.mm (179152 => 179153)
--- branches/safari-600.4-branch/Source/WebKit2/UIProcess/API/mac/WKView.mm 2015-01-27 00:19:12 UTC (rev 179152)
+++ branches/safari-600.4-branch/Source/WebKit2/UIProcess/API/mac/WKView.mm 2015-01-27 00:19:15 UTC (rev 179153)
@@ -4335,6 +4335,8 @@
[self _setTextIndicator:nullptr fadeOut:NO];
+ [_data->_immediateActionController dismissContentRelativeChildWindows];
+
static_cast<PageClient&>(*_data->_pageClient).dismissCorrectionPanel(ReasonForDismissingAlternativeTextIgnored);
}
Modified: branches/safari-600.4-branch/Source/WebKit2/UIProcess/mac/WKImmediateActionController.h (179152 => 179153)
--- branches/safari-600.4-branch/Source/WebKit2/UIProcess/mac/WKImmediateActionController.h 2015-01-27 00:19:12 UTC (rev 179152)
+++ branches/safari-600.4-branch/Source/WebKit2/UIProcess/mac/WKImmediateActionController.h 2015-01-27 00:19:15 UTC (rev 179153)
@@ -45,6 +45,7 @@
}
@class DDActionContext;
+@class QLPreviewMenuItem;
@class WKView;
@interface WKImmediateActionController : NSObject <NSImmediateActionGestureRecognizerDelegate> {
@@ -60,12 +61,14 @@
BOOL _hasActivatedActionContext;
RetainPtr<DDActionContext> _currentActionContext;
+ RetainPtr<QLPreviewMenuItem> _currentQLPreviewMenuItem;
}
- (instancetype)initWithPage:(WebKit::WebPageProxy&)page view:(WKView *)wkView recognizer:(NSImmediateActionGestureRecognizer *)immediateActionRecognizer;
- (void)willDestroyView:(WKView *)view;
- (void)didPerformActionMenuHitTest:(const WebKit::ActionMenuHitTestResult&)hitTestResult userData:(API::Object*)userData;
- (void)wkView:(WKView *)wkView willHandleMouseDown:(NSEvent *)event;
+- (void)dismissContentRelativeChildWindows;
@end
Modified: branches/safari-600.4-branch/Source/WebKit2/UIProcess/mac/WKImmediateActionController.mm (179152 => 179153)
--- branches/safari-600.4-branch/Source/WebKit2/UIProcess/mac/WKImmediateActionController.mm 2015-01-27 00:19:12 UTC (rev 179152)
+++ branches/safari-600.4-branch/Source/WebKit2/UIProcess/mac/WKImmediateActionController.mm 2015-01-27 00:19:15 UTC (rev 179153)
@@ -126,6 +126,7 @@
_type = kWKImmediateActionNone;
_currentActionContext = nil;
_userData = nil;
+ _currentQLPreviewMenuItem = nil;
}
- (void)didPerformActionMenuHitTest:(const ActionMenuHitTestResult&)hitTestResult userData:(API::Object*)userData
@@ -139,6 +140,11 @@
[self _cancelImmediateActionIfNeeded];
}
+- (void)dismissContentRelativeChildWindows
+{
+ [_currentQLPreviewMenuItem close];
+}
+
#pragma mark NSImmediateActionGestureRecognizerDelegate
- (void)immediateActionRecognizerWillPrepare:(NSImmediateActionGestureRecognizer *)immediateActionRecognizer
@@ -237,6 +243,7 @@
RetainPtr<QLPreviewMenuItem> qlPreviewLinkItem = [NSMenuItem standardQuickLookMenuItem];
[qlPreviewLinkItem setPreviewStyle:QLPreviewStylePopover];
[qlPreviewLinkItem setDelegate:self];
+ _currentQLPreviewMenuItem = qlPreviewLinkItem.get();
return (id<NSImmediateActionAnimationController>)qlPreviewLinkItem.get();
}