Problem with mouseWheelEvent in SWF, loaded to QWebView
-
Greetings!
have a program, written in C++, using Qt 5.5.1 (can't switch to another version), running under Windows (7 or 10, doesn't matter).
So I have some FlashWidget, subclassed from QWebView. It loads html file, parses it and replaces %1 with appropriate path to *.swf
<object class="flashPlayer" width=90% height=100% type="application/x-shockwave-flash" id="bridgemovie" data="%1" > <param name="allowScriptAccess" value="always"/> </object>
SWF file has event listeners on mouse events: mouse down, up and mouse wheel
addEventListener(MouseEvent.MOUSE_WHEEL, zoom); //"zoom" is just some internal function addEventListener(MouseEvent.MOUSE_DOWN, mouseDown1); addEventListener(MouseEvent.MOUSE_UP, mouseReleased);
Problem: Dragging and clicking works pretty well, but loaded SWF doesn't receive wheel events. I can't modify SWF code, only C++ and HTML parts. So, how I can natively pass mouseWheel event from JS (or, perhaps, QWebView, if allowed so) to the loaded SWF file?
P.S. I've tried loading SWF with QAxWidget, and wheelEvent is received, but there are some rendering problems, so I'm trying to repair solution with QWebView.
-
I was having similar problems even with live websites using flash heavily esp. some games where mouse was off by 10-12 pixels so to actually hit some flash buttons I had to deliberately click below the button (thank god they have tooltips). This was definitely Qt fault - all these worked perfectly in actual Chrome browser.
This was fixed recently - since Qt 5.7.1 it is working properly - can you test with 5.7.1 or 5.8 to see if that issue is resolved.
-
Sorry I've hit the wrong thread - I really thought the problem is with WebEngine (i.e. Blink) - I meant WebEngine was having similar troubles that got fixed just recently.
Well even if WebKit binaries are no longer distributed with newer versions of Qt you can build it from source, and if you want more recent version go here
https://github.com/annulen/qtwebkit-snapshots