Closed Bug 359403 Opened 18 years ago Closed 3 years ago

mouse wheel events for windowless plugins, Flash wmode=opaque or transparent multi-select in list do not scroll

Categories

(Core Graveyard :: Plug-ins, defect, P3)

x86
Linux
defect

Tracking

(Not tracked)

RESOLVED INCOMPLETE

People

(Reporter: dsides, Unassigned)

References

()

Details

Attachments

(3 files)

User-Agent:       Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.7) Gecko/20060909 Firefox/1.5.0.7
Build Identifier: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20061010 Firefox/2.0

Used Flash 8 to build the attached example that shows where the scroll wheel on the mouse and multi-selection of items in a list do not work when the wmode in the <embed> is set to either "opaque" or "transparent". When wmode is set to "window" the Flash movie performs as expected.

Reproducible: Always

Steps to Reproduce:
Run attached wmode-firefox-problem-opaque.html. In case I'm not able to attach, you can also run this at:

http://www.sidesways.com/flashbugs/wmode-firefox-problem-opaque.html

Actual Results:  
Scroll wheel on the mouse will not move the list and items on the list can't be multi-selected when wmode is set to opaque. You can run this wmode=window version that works properly at:
http://www.sidesways.com/flashbugs/wmode-firefox-problem-window.html

Expected Results:  
I should be able to use the scroll wheel and multi-select items as can be seen when running the attached wmode-firefox-problem-window.html.

I have reported this to Adobe as well and a summary page of the issues with wmode and Firefox can be found at:
http://www.johanvanmol.org/index.php?option=com_content&task=view&id=47&Itemid=41

I could not find this particular problem reported in Bugzilla here, but it's possible/likely there are related items.
This is the HTML file that sets wmode=opaque and calls the Flash SWF.
SWF file that illustrates the problem. Contact me if you want the FLA file as I could not upload it as an attachment.
Using this HTML will make the scroll wheel and multi-selection behave correctly because wmode=window.
I can confirm this w/ FF 2.0.0.3 on WinXPsp2 w/ Flash Player 9.0.28 (both debug and retail) using the attachments provided.

Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3
This works fine in Internet Explorer 7, bug confirmed in
Mozilla/5.0 (Windows; U; Windows NT 6.0; it; rv:1.8.1.4) Gecko/20070515 Firefox/2.0.0.4
Status: UNCONFIRMED → NEW
Ever confirmed: true
Same problem on Linux and any plugin.
Added a few keywords to the summary.
Component: General → Plug-ins
OS: Windows XP → All
Product: Firefox → Core
QA Contact: general → plugins
Summary: Flash 8 or 9 wmode=opaque multi-select in list and scroll wheel do not work → mouse wheel events for windowless plugins, Flash wmode=opaque or transparent multi-select in list do not scroll
Version: unspecified → Trunk
Bug 376679 contains another test case.
Folks, its been 5 Years!
Please fix this, still present in Firefox 5...
can't believe it. What about fixing bugs before adding new 'fancy' stuff!!!

If anyone points me to the right files i'll try fixing myself
nsPluginInstanceOwner::ProcessEvent() at least will need some changes:
http://mxr.mozilla.org/mozilla-central/source/dom/plugins/base/nsPluginInstanceOwner.cpp#1981
Thanks for the hint.
The main problem seems to get the mouse wheel events to the be dispatched to ProcessEvent since there is no DOM Mousewheel event.
I tried listening to the "scroll" event but this isn't captured too.
On the otherhand if the plugin is in windowed mode, no input events go to ProcessEvent. Can point  me where and how mouseevents are dispatched to the plugins in windowed mode?
If a mousescroll happens over a plugin in this mode, scrolling the page is disabled, maybe the code which prevents this scrolling would help also.
(In reply to Martin from comment #11)
> I tried listening to the "scroll" event but this isn't captured too.

Did you try registering for scroll events in nsPluginInstanceOwner::Init?
http://mxr.mozilla.org/mozilla-central/source/dom/plugins/base/nsPluginInstanceOwner.cpp#2976

> On the otherhand if the plugin is in windowed mode, no input events go to
> ProcessEvent. Can point  me where and how mouseevents are dispatched to the
> plugins in windowed mode?
> If a mousescroll happens over a plugin in this mode, scrolling the page is
> disabled, maybe the code which prevents this scrolling would help also.

The plugin would normally use OS-level mechanisms to listen for mouse events on its window.

On WINNT, there may also be some intercepting of these to determine whether they should be dispatched to the plugin or used to scroll the page (according to where the scroll started).  This shouldn't be relevant but perhaps it is incorrectly acting on windowless plugins.  I assume this would be code modified by attachment 440697 [details] [diff] [review].
I guess that after bug 376679 is fixed, this should be fixed easy. Since we'll send native event at handling default action of wheel event. At this time, we generate native message from WidgetWheelEvent. Therefore, even if we couldn't send native event from widget, we could generate native event from WidgetWheelEvent information.

The most important point of this bug is, whether the plugins support to handle native wheel events even in windowless mode.
Depends on: 376679
OS: All → Linux
See Also: → 1234958
Priority: -- → P3
Jim, any thoughts about whether this is a concern for deploying async drawing?
Flags: needinfo?(jmathies)
(In reply to Benjamin Smedberg [:bsmedberg] from comment #14)
> Jim, any thoughts about whether this is a concern for deploying async
> drawing?

I'm not sure, I wish the test case was still active. I can't test to see if the scrollable view picks up mouse wheel.

I did some scroll testing on Windows and found that bug 1234958 is still valid. We might want to prioritize that work better. Also tested Flash list controls through this adobe site [1] and found that multi-select and scrolling of lists with the mouse wheel worked.

[1] http://help.adobe.com/en_US/flex/using/WSc2368ca491e3ff923c946c5112135c8ee9e-7fff.html
Flags: needinfo?(jmathies)

Adobe Flash is no longer supported.

Status: NEW → RESOLVED
Closed: 3 years ago
Resolution: --- → INCOMPLETE
Product: Core → Core Graveyard
You need to log in before you can comment on or make changes to this bug.