Hi Chris, Thanks! This looks interesting; wonder why the playground is fussing about it?
I'm on a different project for the next week or so but will give this a try as soon as I get a chance... Ken On Tue, Jan 12, 2010 at 8:05 AM, Christian Schmidt < [email protected]> wrote: > Hi Ken, > > I played a bit and found a trick to solve your problem. I used native > button to handle the "click" event ("click" works with mouse, SPACE and > RETURN). My example code works fine in a qooxdoo skeleton application, but > not with the playground (I don't know why). > > <code> > qx.Class.define("testmc.Application", > { > extend : qx.application.Standalone, > > members : > { > main : function() > { > this.base(arguments); > > if (qx.core.Variant.isSet("qx.debug", "on")) > { > qx.log.appender.Native; > qx.log.appender.Console; > } > > var button = new qx.ui.form.Button("First Button"); > > var doc = this.getRoot(); > doc.add(button, {left: 200, top: 50}); > > button.addListenerOnce("appear", function(e) { > var domElement = qx.bom.Element.create("input", {type:"button"}); > > var bounds = button.getBounds(); > qx.bom.element.Style.setStyles(domElement, > { > position: "absolute", > overflow: "hidden", > top: "0px", > left: "0px", > width: bounds.width + "px", > height: bounds.height+ "px", > opacity: 0.0, > zIndex: 20 > }); > > var qxElement = new qx.html.Element(); > qxElement.useElement(domElement); > button.getContainerElement().addAt(qxElement, 0); > > qxElement.addListener("click", function(e) { > qx.bom.Window.open("about:blank"); > }); > > button.addListener("focus", function() { > qxElement.focus(); > }); > }); > } > } > }); > </code> > > I hope this solve your problem. > > Cheers, > Chris > > > Am 23.12.2009 16:48, schrieb Ken MacDonald: > > Thanks Chris, > I have a solution for FF now, I think.... what I'm trying to do now for IE > is capture the SPACE event, and fire a mouse event from the handler in hopes > that IE will see a mouse event and not do the popup blocking. However, I > can't seem to get the event listener to fire?!?!? What am I doing wrong > here? > Ken > > Here's the playground: > > http://demo.qooxdoo.org/current/playground/#%7B%22code%22%3A%20%22%252F%252F%2520Create%2520a%2520button%250Avar%2520button1%2520%253D%2520new%2520qx.ui.form.Button(%2522First%2520Button%2522%252C%2520%2522icon%252F22%252Fapps%252Finternet-web-browser.png%2522)%253B%250A%250A%252F%252F%2520Document%2520is%2520the%2520applicat > ion%2520root%250Avar%2520doc%2520%253D%2520this.getRoot()%253B%250A%250Adoc.add(button1%252C%250A%257B%250A%2520%2520left%2520%253A%2520200%252C%250A%2520%2520top%2520%2520%253A%252050%250A%257D)%253B%250A%250A%252F%252F%2520Add%2520an%2520event%2520listener%250Abutton1.addListener(%2522mouseup%2522%252C%2520function(e)%2520%257B%250A%2520%2520alert(%2522Hello%2520Planet!%2522)%253B%250A%2520%2520%252F%252Fwindow.open(%2522%2522%252C%2520'_blank')%253B%250A%257D)%253B%250Abutton1.addListener(%2522keyup%2522%252C%2520function(e)%2520%257B%250A%2520%2520var%2520kid%2520%253D%2520e.getKeyIdentifier()%253B%250A%2520%2520if%2520(kid%2520%253D%253D%2520'Space')%2520%257B%250A%2520%2520%2520%2520alert(%2522Hello%2520Mars!%2522)%253B%250A%2520%2520%2520%2520button1.fireEvent('mouseup')%253B%250A%2520%2520%257D%250A%257D)%253B%250Abutton1.addListener(%2522keypress%2522%252C%2520function(e)%2520%257B%250A%2520%2520var%2520kid%2520%253D%2520e.getKeyIdentifier()%253B%250A%2520%2520if%252 > 0(kid%2520%253D%253D%2520'Enter')%2520%257B%250A%2520%2520%2520%2520alert(%2522Hello%2520Venus!%2522)%253B%250A%2520%2520%2520%2520window.open(%2522%2522%252C%2520'_blank')%253B%250A%2520%2520%257D%250A%257D)%253B%250A%22%7D<http://demo.qooxdoo.org/current/playground/#%7B%22code%22%3A%20%22%252F%252F%2520Create%2520a%2520button%250Avar%2520button1%2520%253D%2520new%2520qx.ui.form.Button%28%2522First%2520Button%2522%252C%2520%2522icon%252F22%252Fapps%252Finternet-web-browser.png%2522%29%253B%250A%250A%252F%252F%2520Document%2520is%2520the%2520application%2520root%250Avar%2520doc%2520%253D%2520this.getRoot%28%29%253B%250A%250Adoc.add%28button1%252C%250A%257B%250A%2520%2520left%2520%253A%2520200%252C%250A%2520%2520top%2520%2520%253A%252050%250A%257D%29%253B%250A%250A%252F%252F%2520Add%2520an%2520event%2520listener%250Abutton1.addListener%28%2522mouseup%2522%252C%2520function%28e%29%2520%257B%250A%2520%2520alert%28%2522Hello%2520Planet%21%2522%29%253B%250A%2520%2520%252F%252Fwindow.open%28%2522%2522%252C%2520%27_blank%27%29%253B%250A%257D%29%253B%250Abutton1.addListener%28%2522keyup%2522%252C%2520function%28e%29%2520%257B%250A%2520%2520var%2520kid%2520%253D%2520e.getKeyIdentifier%28%29%253B%250A%2520%2520if%2520%28kid%2520%253D%253D%2520%27Space%27%29%2520%257B%250A%2520%2520%2520%2520alert%28%2522Hello%2520Mars%21%2522%29%253B%250A%2520%2520%2520%2520button1.fireEvent%28%27mouseup%27%29%253B%250A%2520%2520%257D%250A%257D%29%253B%250Abutton1.addListener%28%2522keypress%2522%252C%2520function%28e%29%2520%257B%250A%2520%2520var%2520kid%2520%253D%2520e.getKeyIdentifier%28%29%253B%250A%2520%2520if%2520%28kid%2520%253D%253D%2520%27Enter%27%29%2520%257B%250A%2520%2520%2520%2520alert%28%2522Hello%2520Venus%21%2522%29%253B%250A%2520%2520%2520%2520window.open%28%2522%2522%252C%2520%27_blank%27%29%253B%250A%2520%2520%257D%250A%257D%29%253B%250A%22%7D> > > > On Wed, Dec 23, 2009 at 8:27 AM, Christian Schmidt < > [email protected]> wrote: > >> Hi Ken, >> >> thank you for the snippet. I think this is a general problem with the >> browser security and not a qooxdoo issue. I attached a html file which use >> native code and the problem also occurs. I found out that the FF3.5 allows >> the RETURN on "keypress" and SPACE on "keyup". IE 7 and IE8 its bit ugly, it >> depends on the protocol. If your use the file protocol, you can use >> "keypress" for RETURN and SPACE. But if you use the http protocol only the >> RETURN works on "keypress". >> >> I'm sorry. I don't know if there is a trick to avoid the browser blocker. >> Perhaps some one form the community knows it. >> >> Using the qx.ui.window.Window is possible, but the problem is that pdf >> plug-in always stay on top and I don't know how to solve this. It seems to >> me that the z-index is ignored from the plug-in. >> >> Cheers, >> Chris >> >> Here the playground code: >> http://demo.qooxdoo.org/current/playground/#%7B%22code%22%3A%20%22var%2520button%2520%253D%2520new%2520qx.ui.form.Button%28%2522Open%2522%252C%2520%2522icon%252F22%252Fapps%252Finternet-web-browser.png%2522%29%253B%250A%250Avar%2520win%2520%253D%2520new%2520qx.ui.window.Window%28%2522File%2522%29%253B%250Awin.setLayout%28new%2520qx.ui.layout.Canvas%28%29%29%253B%250Awin.setWidth%28400%29%253B%250Awin.setHeight%28500%29%253B%250Awin.setContentPadding%280%29%253B%250A%250Avar%2520file%2520%253D%2520new%2520qx.ui.embed.Iframe%28%2522http%253A%252F%252Fwww.education.gov.yk.ca%252Fpdf%252Fpdf-test.pdf%2522%29%253B%250Awin.add%28file%252C%2520%257Bedge%253A0%257D%29%253B%250A%250Avar%2520doc%2520%253D%2520this.getRoot%28%29%253B%250Adoc.add%28button%252C%2520%257Bleft%253A%2520200%252C%2520top%253A%252050%257D%29%253B%250Adoc.add%28win%252C%2520%257Bleft%253A%252020%252C%2520 >> top%253A%252020%257D%29%253B%250A%250Abutton.addListener%28%2522execute%2522%252C%2520function%28e%29%2520%257B%250A%2520%2520win.open%28%29%253B%250A%257D%29%253B%250A%22%7D<http://demo.qooxdoo.org/current/playground/#%7B%22code%22%3A%20%22var%2520button%2520%253D%2520new%2520qx.ui.form.Button%28%2522Open%2522%252C%2520%2522icon%252F22%252Fapps%252Finternet-web-browser.png%2522%29%253B%250A%250Avar%2520win%2520%253D%2520new%2520qx.ui.window.Window%28%2522File%2522%29%253B%250Awin.setLayout%28new%2520qx.ui.layout.Canvas%28%29%29%253B%250Awin.setWidth%28400%29%253B%250Awin.setHeight%28500%29%253B%250Awin.setContentPadding%280%29%253B%250A%250Avar%2520file%2520%253D%2520new%2520qx.ui.embed.Iframe%28%2522http%253A%252F%252Fwww.education.gov.yk.ca%252Fpdf%252Fpdf-test.pdf%2522%29%253B%250Awin.add%28file%252C%2520%257Bedge%253A0%257D%29%253B%250A%250Avar%2520doc%2520%253D%2520this.getRoot%28%29%253B%250Adoc.add%28button%252C%2520%257Bleft%253A%2520200%252C%2520top%253A%252050%257D%29%253B%250Adoc.add%28win%252C%2520%257Bleft%253A%252020%252C%2520top%253A%252020%257D%29%253B%250A%250Abutton.addListener%28%2522execute%2522%252C%2520function%28e%29%2520%257B%250A%2520%2520win.open%28%29%253B%250A%257D%29%253B%250A%22%7D> >> >> >> >> Am 22.12.2009 15:13, schrieb Ken MacDonald: >> >> OK, here it is. Make sure that popup blocking is on - I used FF3.5 to run >> this in the playground. Click on the button with the mouse - a popup window >> (or new tab) should appear, and focus will be on the button. Now hit the >> space bar and another new tab will appear. Finally, hit RETURN and the popup >> blocker should appear and no tab will be created. >> >> In IE8, both SPACE and RETURN cause the popup blocker to appear, neither >> works correctly. Mouseclick DOES work correctly, however. >> >> Also, if this would work having the proper behavior (open new tab, be able >> to display a .pdf) using a qooxdoo window.Window, that would probably be OK >> as well. >> Ken >> >> http://demo.qooxdoo.org/current/playground/#%7B%22code%22%3A%20%22%252F%252F%2520Create%2520a%2520button%250Avar%2520button1%2520%253D%2520new%2520qx.ui.form.Button%28%2522First%2520Button%2522%252C%2520%2522icon%252F22%252Fapps%252Finternet-web-browser.png%2522%29%253B%250A%250A%252F%252F%2520Document%2520is%2520the%2520application%2520root%250Avar%2520doc%2520%253D%2520this.getRoot%28%29%253B%250A%250A%252F%252F%2520Add%2520button%2520to%2520document%2520at%2520fixed%2520coordinates%250Adoc.add%28button1%252C%250A%257B%250A%2520%2520left%2520%253A%2520200%252C%250A%2520%2520top%2520%2520%253A%252050%250A%257D%29%253B%250A%250A%252F%252F%2520Add%2520an%2520event%2520listener%250Abutton1.addListener%28%2522mouseup%2522%252C%2520function%28e%29%2520%257B%250A%2520%2520alert%28%2522Hello%2520Planet!%2522%29%253B%250A% >> 2520%2520window.open%28%2522%2522%252C%2520%27_blank%27%29%253B%250A%257D%29%253B%250Abutton1.addListener%28%2522keyup%2522%252C%2520function%28e%29%2520%257B%250A%2520%2520alert%28%2522Hello%2520Mars!%2522%29%253B%250A%2520%2520window.open%28%2522%2522%252C%2520%27_blank%27%29%253B%250A%257D%29%253B%250A%22%7D<http://demo.qooxdoo.org/current/playground/#%7B%22code%22%3A%20%22%252F%252F%2520Create%2520a%2520button%250Avar%2520button1%2520%253D%2520new%2520qx.ui.form.Button%28%2522First%2520Button%2522%252C%2520%2522icon%252F22%252Fapps%252Finternet-web-browser.png%2522%29%253B%250A%250A%252F%252F%2520Document%2520is%2520the%2520application%2520root%250Avar%2520doc%2520%253D%2520this.getRoot%28%29%253B%250A%250A%252F%252F%2520Add%2520button%2520to%2520document%2520at%2520fixed%2520coordinates%250Adoc.add%28button1%252C%250A%257B%250A%2520%2520left%2520%253A%2520200%252C%250A%2520%2520top%2520%2520%253A%252050%250A%257D%29%253B%250A%250A%252F%252F%2520Add%2520an%2520event%2520listener%250Abutton1.addListener%28%2522mouseup%2522%252C%2520function%28e%29%2520%257B%250A%2520%2520alert%28%2522Hello%2520Planet%21%2522%29%253B%250A%2520%2520window.open%28%2522%2522%252C%2520%27_blank%27%29%253B%250A%257D%29%253B%250Abutton1.addListener%28%2522keyup%2522%252C%2520function%28e%29%2520%257B%250A%2520%2520alert%28%2522Hello%2520Mars%21%2522%29%253B%250A%2520%2520window.open%28%2522%2522%252C%2520%27_blank%27%29%253B%250A%257D%29%253B%250A%22%7D> >> >> On Tue, Dec 22, 2009 at 4:55 AM, Christian Schmidt < >> [email protected]> wrote: >> >>> Hi Ken, >>> >>> I think you are talking about a native window and not from the >>> qx.ui.window.Window, right? I'm not sure, but perhaps there is an issue >>> with the focus handler, when you are using the keyboard. Could you >>> please provide a short code snippet which reproduce your issue. And >>> which qooxdoo version do you use? >>> >>> Thanks, >>> Chris >>> >>> Am 21.12.2009 18:58, schrieb Ken MacDonald: >>> > I am having difficulty with events on a button. I have a "Print" >>> > button, and having a listener attached to the "execute". Inside the >>> > listener, I open a window (or tab) to receive a .PDF file. If I >>> > mouseclick the button, the listener is fired, and everything works OK, >>> > the window opens and eventually gets its .PDF. >>> > >>> > However, if I TAB to the button and hit the RETURN key, the same >>> > listener is fired, BUT the window is blocked by my popup blocker (IE8 >>> > and FF3.5). If I TAB to the button and hit the SPACE key, the listener >>> > is fired and the window appears in FF, but is blocked in IE8. >>> > >>> > So, I thought I'd add another listener, for the "keyup" event, because >>> > with the 'execute' listener in place, the event doesn't fire until you >>> > release the SPACE/RETURN keys. After adding the 2nd listener, BOTH >>> > listeners are fired, but the 'execute' listener is fired first. >>> > >>> > We read (I think the IE docs) recently that popup blocker can be >>> > avoided if the window is opened in response to a user-initiated event, >>> > so that if we open the window in the first event handler, (e.g. >>> > mouseclick => execute handler) it works fine, but if the execute >>> > handler is invoked indirectly (by capturing key event, then firing the >>> > execute event) it is no longer considered user-initiated and thus the >>> > popup blocker fires. >>> > >>> > It seems that somewhere in qooxdoo, something must be catching the key >>> > event and redirecting it to the 'execute' event before the event >>> > listener for my key event is invoked. Is this something that can be >>> > avoided? The real problem here is that the popup blocker stops display >>> > of the .PDF file; I don't really care if I need to have one event >>> > listener or two or more, but customer is quite unhappy about the popup >>> > blocker. >>> > Ken >>> >>> >>> -- >>> Christian Schmidt >>> Software Entwickler >>> >>> 1&1 Internet AG - Web Technologies >>> Ernst-Frey-Straße 9 · DE-76135 Karlsruhe >>> [email protected] >>> >>> Amtsgericht Montabaur / HRB 6484 >>> Vorstände: Henning Ahlert, Ralph Dommermuth, Matthias Ehrlich, Thomas >>> Gottschlich, Robert Hoffmann, Markus Huhn, Hans-Henning Kettler, Dr. Oliver >>> Mauss, Jan Oetjen >>> Aufsichtsratsvorsitzender: Michael Scheeren >>> >>> >>> >>> ------------------------------------------------------------------------------ >>> This SF.Net email is sponsored by the Verizon Developer Community >>> Take advantage of Verizon's best-in-class app development support >>> A streamlined, 14 day to market process makes app distribution fast and >>> easy >>> Join now and get one step closer to millions of Verizon customers >>> http://p.sf.net/sfu/verizon-dev2dev >>> _______________________________________________ >>> qooxdoo-devel mailing list >>> [email protected] >>> https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel >>> >> >> >> >> -- >> Christian Schmidt >> Software Entwickler >> >> 1&1 Internet AG - Web Technologies >> Ernst-Frey-Straße 9 · DE-76135 Karlsruhe >> [email protected] >> >> Amtsgericht Montabaur / HRB 6484 >> Vorstände: Henning Ahlert, Ralph Dommermuth, Matthias Ehrlich, Thomas >> Gottschlich, Robert Hoffmann, Markus Huhn, Hans-Henning Kettler, Dr. Oliver >> Mauss, Jan Oetjen >> Aufsichtsratsvorsitzender: Michael Scheeren >> >> >> >> ------------------------------------------------------------------------------ >> This SF.Net email is sponsored by the Verizon Developer Community >> Take advantage of Verizon's best-in-class app development support >> A streamlined, 14 day to market process makes app distribution fast and >> easy >> Join now and get one step closer to millions of Verizon customers >> http://p.sf.net/sfu/verizon-dev2dev >> _______________________________________________ >> qooxdoo-devel mailing list >> [email protected] >> https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel >> >> > > > -- > Christian Schmidt > Software Entwickler > > 1&1 Internet AG - Web Technologies > Ernst-Frey-Straße 9 · DE-76135 Karlsruhe > [email protected] > > Amtsgericht Montabaur / HRB 6484 > Vorstände: Henning Ahlert, Ralph Dommermuth, Matthias Ehrlich, Thomas > Gottschlich, Robert Hoffmann, Markus Huhn, Hans-Henning Kettler, Dr. Oliver > Mauss, Jan Oetjen > Aufsichtsratsvorsitzender: Michael Scheeren > > > > ------------------------------------------------------------------------------ > This SF.Net email is sponsored by the Verizon Developer Community > Take advantage of Verizon's best-in-class app development support > A streamlined, 14 day to market process makes app distribution fast and > easy > Join now and get one step closer to millions of Verizon customers > http://p.sf.net/sfu/verizon-dev2dev > _______________________________________________ > qooxdoo-devel mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel > >
------------------------------------------------------------------------------ This SF.Net email is sponsored by the Verizon Developer Community Take advantage of Verizon's best-in-class app development support A streamlined, 14 day to market process makes app distribution fast and easy Join now and get one step closer to millions of Verizon customers http://p.sf.net/sfu/verizon-dev2dev
_______________________________________________ qooxdoo-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel
