Windowless Silverlight (and Flash?) app on Firefox

2019-05-07 01:53发布

问题:

When I create a windowless Silverlight app and run it on Firefox, wrong mouse positions are reported. There is a vertical offset between the actual mouse position and what the application responds to.

I also tagged this question with Flash because my research shows that this problem also occurs with Flash (see links below).

To reproduce:

Step 1: Create a new Silverlight application.

Step 2: Inside the grid of MainApp.xaml add the following:

<HyperlinkButton NavigateUri="http://google.com" VerticalAlignment="Center" HorizontalAlignment="Center">GOOGLE</HyperlinkButton>

Step 3: In SilverApplicationXTestPage.aspx (in the web project) add the following parameter to the Silverlight object:

<param name="windowless" value="true" />

Now run the silverlight application. When you hover the link it doesn't get underlined. Now slowly move the mouse up until at a certain offset above the link it will get highlighted.

This problem doesn't happen if you do one of the following:

  1. Switch Firefox into full screen mode (it seems that the top bar is the cause for the offset, so when it's not visible there is no offset).
  2. Do not use Silverlight in a windowless mode.
  3. Use any other browser.

I'm using Silverlight 4 on Firefox 8.0 on Windows 7.

This seems like an old problem that affects not just Silverlight, but also Flash.

In my research I came across the following suggested workarounds, non of which worked for me:

  • Do not use overflow in css.
  • Use css to set html margin of 1px.
  • Do not use iframe (but the reproduction steps above do not use an iframe anyway).

As I mentioned none of the above workarounds seem to work.

Here are some references to mentions of this problem or similar:

http://forums.silverlight.net/t/161640.aspx/1/10

https://bugzilla.mozilla.org/show_bug.cgi?id=362193

http://forums.silverlight.net/t/94583.aspx/2/10#

https://bugzilla.mozilla.org/show_bug.cgi?id=536429

Does anyone know how to overcome this? Any workaround? I'm desperate!

回答1:

I found this: http://support.mozilla.org/en-US/questions/795168.

"Enabling the plugin-container.exe in about:config (dom.ipc.plugins.enabled) fixes the mouse issue but then Silverlight plugin pop-ups (webcam/microphone permission for example) freeze the browser."

I didn't see the problem with the popup (a copy permissions) after changing the config.

Making it full-screen also helped before I made this config change.

This requires the user to change their browser setting, which is not ideal.

This is similar to this question: Silverlight- bad mouse position when embedded in html page when Firefox has zoom