divyang4481 / firebreath

Automatically exported from code.google.com/p/firebreath
0 stars 0 forks source link

Mouseover plugin will bring the window containing plugin on foreground #135

Open GoogleCodeExporter opened 8 years ago

GoogleCodeExporter commented 8 years ago
What steps will reproduce the problem?
1. open on Firefox or Chrome or Safari (not IE) a plugin made on Firebreath
2. open another window in the same browser, resize it so that you can see the 
plugin on background
3. move mouse pointer over the plugin area.

What is the expected output? What do you see instead?

the window containing plugin is brought on front, hiding the one which was on 
the front before that. This is particularly annoying if, for example, the 
window which is on front were to be a message box completely surrounded by 
plugin area.

What version of FireBreath are you using? On what operating system and
browsers?

tested on FireBreath 1.3.2a, windows platform

What version of your compiler or IDE are you using?

Please provide any additional information below.
Issue is caused by SetFocus(m_hwnd) in the mouseover event handling function 
(https://github.com/firebreath/FireBreath/tree/master/src/PluginAuto/Win#L117). 
Comment says "get key focus, as the mouse is over our region" but on my opinion 
this is also bad behaviour, for an explanation imagine this scenario: user is 
filling a form in a page containing our plugin, he need to fill in a date and 
hover the mouse on Windows clock to see the date tooltip, by doing so the mouse 
pointer passes over the plugin which takes key focus. He now has to move the 
mouse back to the textbox and click it again to continue editing. Or while 
scrolling with arrow keys the plugin moves under the mouse position, the plugin 
will intercept following key events and the scrolling would stop. 

Original issue reported on code.google.com by l.bartol...@gmail.com on 31 Jan 2011 at 11:35

GoogleCodeExporter commented 8 years ago
Interesting point.  I've never experienced the issue you're mentioning, but 
you're right; the mousemove event should definitely not be setting focus.

Since you bring it up, what would you think about setting focus on mousedown as 
a default?  Or do we need to make setfocus a method on PluginWindow?  Mainly I 
just don't know how to do that (or if it's possible) on Mac and Linux...

Original comment by taxilian on 31 Jan 2011 at 3:57

GoogleCodeExporter commented 8 years ago
I don't know how it works for Mac and Linux too, since I haven't started 
working on these platforms yet. I guess having focus on mousedown is pretty 
standard behaviour, though would be nice if developer would be allowed to 
configure that (for example to simulate a partially transparent plugin one 
could want to set focus only when click is done in a non-transparent area), but 
I don't know if it would be too much work for such a rarely used functionality.

Original comment by l.bartol...@gmail.com on 31 Jan 2011 at 4:36

GoogleCodeExporter commented 8 years ago
I've done a little research on how this works on other platforms and it sounds 
like mousedown normally causes the keyboard focus to be captured. This being 
the case I have changed it to work the same way in PluginWindowWin.

Thanks for bringing this up!  Fixed in 1.4b4

Original comment by richarda...@gmail.com on 8 Feb 2011 at 4:03