For those, who deals with browser plugins, here is a short mixin to protect
widgets from overlaying by plugins. Just include the mixin to your widget class
and control protection by showPluginProtector and excludePluginProtector.
qx.Mixin.define("sd3.ui.core.MPluginProtector",
{
construct : function()
{
this.addListener("resize", this.__onResize, this);
},
members :
{
/** Activates plugin protector */
showPluginProtector : function()
{
this._getPluginProtector().show();
},
/** Deactivates plugin protector */
excludePluginProtector : function()
{
this._getPluginProtector().hide();
},
/**
* {qx.ui.embed.Iframe} This element protects the widget from plug-ins,
which
* try to be on top of the screen.
*/
__pluginProtector : null,
/**
* Creates a Iframe as protector element to keep a plug-in (Applet or
ActivX)
* behind the widget.
*/
_getPluginProtector : function()
{
if (!this.__pluginProtector) {
// IE8 and less has problem when we use qx.html.Iframe therefore
qx.html.Element is used
var protector = new qx.html.Element("iframe");
protector.setStyles(
{
position: "absolute",
top: 0,
left: 0,
backgroundColor : "white",
zIndex: 0
});
protector.setAttributes({
marginwidth : "0",
marginheight : "0",
frameborder : "0",
scrolling : "no",
src : qx.core.Environment.get("build.blankpage")
});
this.getContentElement().add(protector);
protector.hide();
this.__pluginProtector = protector;
}
return this.__pluginProtector;
},
__onResize : function()
{
var protector = this._getPluginProtector();
protector.setStyles({
width : this.getBounds().width + "px",
height : this.getBounds().height + "px"
});
}
}
});
Gruß
Mustafa Sak
Applications & Integration
1&1 Internet AG
Ernst-Frey-Straße 10
DE-76135 Karlsruhe
Von: Chris Bunn [mailto:cha...@gmail.com]
Gesendet: Montag, 4. August 2014 21:06
An: qooxdoo Development
Betreff: Re: [qooxdoo-devel] Controlling window stacking when windows contain
iframes
Mustafa,
Thanks for the example,
Depending on the browser and PDF viewer installation / configuration I am
getting mixed results. I have control over the HTML content window and could
perhaps resolve the issue for it. I am not able to get the PDF viewer window to
move forward in the stack, unless I click on the content area,
In looking at one of the "Real-life Examples" applications (National Weather
Service Enhanced Data Display) I noticed that they use qx windows and iframes
in several areas. The application exhibits the same issues that I am seeing
with window stacking and iframes.
I think I may need to rethink my UI design and the impact of iframe content.
Thanks for your help.
-Chris
On Mon, Aug 4, 2014 at 10:43 AM, Mustafa Sak
<mustafa....@1und1.de<mailto:mustafa....@1und1.de>> wrote:
Hi,
Now I got your problem. So did you ever test your code on IE11? You will be
surprised.
But back to your problem.
I would advise you to use "postMessage" to communicate between the iframes and
your qooxdoo app. But this is only possible if you have access to the content
of the iframes.
A more common (but ugly) way is to poll document.activeElement, so take a look
at: http://tinyurl.com/pgx3u8o
Gruß
Mustafa Sak
Applications & Integration
1&1 Internet AG
Ernst-Frey-Straße 10
DE-76135 Karlsruhe
Von: Chris Bunn [mailto:cha...@gmail.com<mailto:cha...@gmail.com>]
Gesendet: Montag, 4. August 2014 16:48
An: qooxdoo Development
Betreff: Re: [qooxdoo-devel] Controlling window stacking when windows contain
iframes
Mustafa,
I have been testing the behavior in Chrome and Firefox, (I had not bothered
with IE testing yet). If I select the window using the title bar it moves
forward in the stack. If I click in the content area (the iframe) of the window
it stays inactive but the iframe contents respond.
Does using the Desktop class help with this issue? The block and unblock
methods sound like the technique I have had to use in the past when programming
the DOM directly.
-Chris
On Mon, Aug 4, 2014 at 9:05 AM, Mustafa Sak
<mustafa....@1und1.de<mailto:mustafa....@1und1.de>> wrote:
Hi Chris,
IMHO your core problem is IE using an external PDF Plugin. Because your code is
working fine for Chrome and Firefox which has their own PDF viewer.
But I guess I have a solution for you. In a project I had the same problem and
solved it with a iframe protector. I will post you the code as soon as possible.
Gruß
Mustafa Sak
Applications & Integration
1&1 Internet AG
Ernst-Frey-Straße 10
DE-76135 Karlsruhe
-----Ursprüngliche Nachricht-----
Von: chalbu [mailto:cha...@gmail.com<mailto:cha...@gmail.com>]
Gesendet: Montag, 4. August 2014 15:26
An:
qooxdoo-devel@lists.sourceforge.net<mailto:qooxdoo-devel@lists.sourceforge.net>
Betreff: Re: [qooxdoo-devel] Controlling window stacking when windows contain
iframes
Mustafa,
I apologize I don't know how to share a playground example.
Does the following code example help explain what I am trying to do.
Clicking in the content area of either of the windows will not move the window
to the top of the stack.
-Chris
var win1 = new qx.ui.window.Window("First Window"); win1.setLayout(new
qx.ui.layout.Grow()); win1.setWidth(600); win1.setHeight(400);
var iframe1 = new qx.ui.embed.ThemedIframe("http://qooxdoo.org/downloads");
iframe1.setPadding(0);
win1.add(iframe1);
this.getRoot().add(win1, {left:20, top:20}); win1.open();
var win2 = new qx.ui.window.Window("Second Window"); win2.setLayout(new
qx.ui.layout.Grow()); win2.setWidth(500); win2.setHeight(300);
var iframe2 = new
qx.ui.embed.ThemedIframe("http://manual.qooxdoo.org/current/qooxdoo.pdf");
iframe2.setPadding(0);
win2.add(iframe2);
this.getRoot().add(win2, {left:180, top:140}); win2.open();
--
View this message in context:
http://qooxdoo.678.n2.nabble.com/Controlling-window-stacking-when-windows-contain-iframes-tp7586018p7586030.html
Sent from the qooxdoo mailing list archive at Nabble.com.
------------------------------------------------------------------------------
Infragistics Professional
Build stunning WinForms apps today!
Reboot your WinForms applications with our WinForms controls.
Build a bridge from your legacy apps to the future.
http://pubads.g.doubleclick.net/gampad/clk?id=153845071&iu=/4140/ostg.clktrk
_______________________________________________
qooxdoo-devel mailing list
qooxdoo-devel@lists.sourceforge.net<mailto:qooxdoo-devel@lists.sourceforge.net>
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel
------------------------------------------------------------------------------
Infragistics Professional
Build stunning WinForms apps today!
Reboot your WinForms applications with our WinForms controls.
Build a bridge from your legacy apps to the future.
http://pubads.g.doubleclick.net/gampad/clk?id=153845071&iu=/4140/ostg.clktrk
_______________________________________________
qooxdoo-devel mailing list
qooxdoo-devel@lists.sourceforge.net<mailto:qooxdoo-devel@lists.sourceforge.net>
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel
------------------------------------------------------------------------------
Infragistics Professional
Build stunning WinForms apps today!
Reboot your WinForms applications with our WinForms controls.
Build a bridge from your legacy apps to the future.
http://pubads.g.doubleclick.net/gampad/clk?id=153845071&iu=/4140/ostg.clktrk
_______________________________________________
qooxdoo-devel mailing list
qooxdoo-devel@lists.sourceforge.net<mailto:qooxdoo-devel@lists.sourceforge.net>
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel
------------------------------------------------------------------------------
Infragistics Professional
Build stunning WinForms apps today!
Reboot your WinForms applications with our WinForms controls.
Build a bridge from your legacy apps to the future.
http://pubads.g.doubleclick.net/gampad/clk?id=153845071&iu=/4140/ostg.clktrk
_______________________________________________
qooxdoo-devel mailing list
qooxdoo-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel