Title: [179230] trunk/Source
- Revision
- 179230
- Author
- [email protected]
- Date
- 2015-01-27 17:06:54 -0800 (Tue, 27 Jan 2015)
Log Message
Immediate action gesture recognizer still doesn't work well with IB
https://bugs.webkit.org/show_bug.cgi?id=140967
-and corresponding-
rdar://problem/19621509
Reviewed by Tim Horton.
We should add (or remove) the gesture recognizer in viewDidMoveToWindow because
initWithFrame it too early and IB might mess with it.
Source/WebKit/mac:
* WebView/WebImmediateActionController.h:
* WebView/WebImmediateActionController.mm:
(-[WebImmediateActionController immediateActionRecognizer]):
* WebView/WebView.mm:
(-[WebView _commonInitializationWithFrameName:groupName:]):
(-[WebView viewDidMoveToWindow]):
Source/WebKit2:
* UIProcess/API/mac/WKView.mm:
(-[WKView viewDidMoveToWindow]):
(-[WKView initWithFrame:processPool:configuration:webView:]):
Modified Paths
Diff
Modified: trunk/Source/WebKit/mac/ChangeLog (179229 => 179230)
--- trunk/Source/WebKit/mac/ChangeLog 2015-01-28 00:48:19 UTC (rev 179229)
+++ trunk/Source/WebKit/mac/ChangeLog 2015-01-28 01:06:54 UTC (rev 179230)
@@ -1,3 +1,21 @@
+2015-01-27 Beth Dakin <[email protected]>
+
+ Immediate action gesture recognizer still doesn't work well with IB
+ https://bugs.webkit.org/show_bug.cgi?id=140967
+ -and corresponding-
+ rdar://problem/19621509
+
+ Reviewed by Tim Horton.
+
+ We should add (or remove) the gesture recognizer in viewDidMoveToWindow because
+ initWithFrame it too early and IB might mess with it.
+ * WebView/WebImmediateActionController.h:
+ * WebView/WebImmediateActionController.mm:
+ (-[WebImmediateActionController immediateActionRecognizer]):
+ * WebView/WebView.mm:
+ (-[WebView _commonInitializationWithFrameName:groupName:]):
+ (-[WebView viewDidMoveToWindow]):
+
2015-01-27 Dan Bernstein <[email protected]>
Fixed building projects that import WebView.h with WK_ENABLE_FORMAL_DELEGATE_PROTOCOLS.
Modified: trunk/Source/WebKit/mac/WebView/WebImmediateActionController.h (179229 => 179230)
--- trunk/Source/WebKit/mac/WebView/WebImmediateActionController.h 2015-01-28 00:48:19 UTC (rev 179229)
+++ trunk/Source/WebKit/mac/WebView/WebImmediateActionController.h 2015-01-28 01:06:54 UTC (rev 179230)
@@ -53,6 +53,8 @@
- (void)webView:(WebView *)webView willHandleMouseDown:(NSEvent *)event;
- (void)webView:(WebView *)webView didHandleScrollWheel:(NSEvent *)event;
+- (NSImmediateActionGestureRecognizer *)immediateActionRecognizer;
+
@end
#endif // PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101000
Modified: trunk/Source/WebKit/mac/WebView/WebImmediateActionController.mm (179229 => 179230)
--- trunk/Source/WebKit/mac/WebView/WebImmediateActionController.mm 2015-01-28 00:48:19 UTC (rev 179229)
+++ trunk/Source/WebKit/mac/WebView/WebImmediateActionController.mm 2015-01-28 01:06:54 UTC (rev 179230)
@@ -104,6 +104,11 @@
[self _clearImmediateActionState];
}
+- (NSImmediateActionGestureRecognizer *)immediateActionRecognizer
+{
+ return _immediateActionRecognizer.get();
+}
+
- (void)_cancelImmediateAction
{
// Reset the recognizer by turning it off and on again.
Modified: trunk/Source/WebKit/mac/WebView/WebView.mm (179229 => 179230)
--- trunk/Source/WebKit/mac/WebView/WebView.mm 2015-01-28 00:48:19 UTC (rev 179229)
+++ trunk/Source/WebKit/mac/WebView/WebView.mm 2015-01-28 01:06:54 UTC (rev 179230)
@@ -893,7 +893,6 @@
RetainPtr<NSImmediateActionGestureRecognizer> recognizer = adoptNS([(NSImmediateActionGestureRecognizer *)[gestureClass alloc] initWithTarget:nil action:NULL]);
_private->immediateActionController = [[WebImmediateActionController alloc] initWithWebView:self recognizer:recognizer.get()];
[recognizer setDelegate:_private->immediateActionController];
- [self addGestureRecognizer:recognizer.get()];
}
#endif
@@ -5294,6 +5293,17 @@
_private->page->setDeviceScaleFactor([self _deviceScaleFactor]);
#endif
+#if PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101000
+ if (_private->immediateActionController) {
+ NSImmediateActionGestureRecognizer *recognizer = [_private->immediateActionController immediateActionRecognizer];
+ if ([self window]) {
+ if (![[self gestureRecognizers] containsObject:recognizer])
+ [self addGestureRecognizer:recognizer];
+ } else
+ [self removeGestureRecognizer:recognizer];
+ }
+#endif
+
[self _updateActiveState];
[self _updateVisibilityState];
}
Modified: trunk/Source/WebKit2/ChangeLog (179229 => 179230)
--- trunk/Source/WebKit2/ChangeLog 2015-01-28 00:48:19 UTC (rev 179229)
+++ trunk/Source/WebKit2/ChangeLog 2015-01-28 01:06:54 UTC (rev 179230)
@@ -1,5 +1,20 @@
2015-01-27 Beth Dakin <[email protected]>
+ Immediate action gesture recognizer still doesn't work well with IB
+ https://bugs.webkit.org/show_bug.cgi?id=140967
+ -and corresponding-
+ rdar://problem/19621509
+
+ Reviewed by Tim Horton.
+
+ We should add (or remove) the gesture recognizer in viewDidMoveToWindow because
+ initWithFrame it too early and IB might mess with it.
+ * UIProcess/API/mac/WKView.mm:
+ (-[WKView viewDidMoveToWindow]):
+ (-[WKView initWithFrame:processPool:configuration:webView:]):
+
+2015-01-27 Beth Dakin <[email protected]>
+
Invoking an immediate action on link often dismisses selection
https://bugs.webkit.org/show_bug.cgi?id=140911
-and corresponding-
Modified: trunk/Source/WebKit2/UIProcess/API/mac/WKView.mm (179229 => 179230)
--- trunk/Source/WebKit2/UIProcess/API/mac/WKView.mm 2015-01-28 00:48:19 UTC (rev 179229)
+++ trunk/Source/WebKit2/UIProcess/API/mac/WKView.mm 2015-01-28 01:06:54 UTC (rev 179230)
@@ -2567,6 +2567,11 @@
}
[self _accessibilityRegisterUIProcessTokens];
+
+#if __MAC_OS_X_VERSION_MIN_REQUIRED >= 101000
+ if (_data->_immediateActionGestureRecognizer && ![[self gestureRecognizers] containsObject:_data->_immediateActionGestureRecognizer.get()] && !_data->_ignoresNonWheelEvents)
+ [self addGestureRecognizer:_data->_immediateActionGestureRecognizer.get()];
+#endif
} else {
ViewState::Flags viewStateChanges = ViewState::WindowIsActive | ViewState::IsVisible;
if ([self isDeferringViewInWindowChanges])
@@ -2579,6 +2584,11 @@
_data->_flagsChangedEventMonitor = nil;
[self _dismissContentRelativeChildWindows];
+
+#if __MAC_OS_X_VERSION_MIN_REQUIRED >= 101000
+ if (_data->_immediateActionGestureRecognizer)
+ [self removeGestureRecognizer:_data->_immediateActionGestureRecognizer.get()];
+#endif
}
_data->_page->setIntrinsicDeviceScaleFactor([self _intrinsicDeviceScaleFactor]);
@@ -3625,7 +3635,6 @@
_data->_immediateActionGestureRecognizer = adoptNS([(NSImmediateActionGestureRecognizer *)[gestureClass alloc] initWithTarget:nil action:NULL]);
_data->_immediateActionController = adoptNS([[WKImmediateActionController alloc] initWithPage:*_data->_page view:self recognizer:_data->_immediateActionGestureRecognizer.get()]);
[_data->_immediateActionGestureRecognizer setDelegate:_data->_immediateActionController.get()];
- [self addGestureRecognizer:_data->_immediateActionGestureRecognizer.get()];
}
#endif
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes