We are currently swallowing all wheel events unconditionally, not allowing applications to handle wheel events when not handled by us. Since the GTK+ event propagation system is synchronous, and our events are handled asynchronously, we need to do something similar to what we do for key events, not propagate the vent the first time and if not handled by the web process, re-inject it in the event loop and then just propagate it.
Created attachment 276901 [details] Patch
Comment on attachment 276901 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=276901&action=review > Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp:857 > + if (priv->shouldForwardNextWheelEvent) { std::exchange() > Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp:863 > - return TRUE; > + return FALSE; Intended?
(In reply to comment #2) > Comment on attachment 276901 [details] > Patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=276901&action=review > > > Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp:857 > > + if (priv->shouldForwardNextWheelEvent) { > > std::exchange() > > > Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp:863 > > - return TRUE; > > + return FALSE; > > Intended? Yes, because the web view is never scrollable when the auth dialog is present, we want to propagate the event to allow apps to handle it.
Committed r199810: <http://trac.webkit.org/changeset/199810>