Dragging over an iFrame no longer works when migrating to qx 5.0

classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|

Dragging over an iFrame no longer works when migrating to qx 5.0

Qoo Goo
Hi,

I am migrating an application from Qooxdoo 3.5.1 to 5.0 and, after fixing some behaviour changes related to events (click to tap and so), I'm stuck with a problem dragging onto an iframe.

The problem is that when dragging elements onto the iframe, the drag event seems to get stalled at the limit of the iframe. You cannot enter the iframe keeping the drag active (it's curious because if you capture the event in the parent as I do in my app and you enter the iframe passing over a zone not occupied by the iframe, then it seems it seems it captures the event, but in any case the "dragover" event doesn't work).

In the examples I put below, you'll see that if you enter the iframe from the top of the window, it doesn't work as I would expect (as it did in 3.5.1), but the drop event is caught. If, instead, you enter the iframe from the bottom (and dragging fast), it doesn't.

You can see how behaviours differ from Qx 3.5.1 to Qx 5.0 in following links to the playground. 

3.5.1:

5.0:

Does anybody know if Is this a bug or a behaviour change? If it is the behaviour change, how would you achieve the goal of dropping onto the iframe?

Thanks

------------------------------------------------------------------------------

_______________________________________________
qooxdoo-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel
Reply | Threaded
Open this post in threaded view
|

Re: Dragging over an iFrame no longer works when migrating to qx 5.0

Mustafa Sak-5

Hi,

 

well Drag & Drop handler changed massively because of using of pointer events. Now it looks like the pointer move will be prevented, how ever.

Feel free to open a bug, but I would advise you to overlay the iframe with an „drop target“ layer, which shows the user that an drop does change the whole iframe not even the DOM element you spotted inside the iframe. 

 

May be this workaround can solve your D&D issue and improves your user experience.

Dank & Gruß
Mustafa Sak

Softwareentwickler
Mail Development

1&1 Mail & Media Development & Technology GmbH | Brauerstraße 48 | 76135 Karlsruhe | Germany
Phone: +49 721 91374-6977
E-Mail: [hidden email] | Web: www.1und1.de

 

Von: Qoo Goo [mailto:[hidden email]]
Gesendet: Mittwoch, 29. Juli 2015 14:27
An: qooxdoo Development
Betreff: [qooxdoo-devel] Dragging over an iFrame no longer works when migrating to qx 5.0

 

Hi,

 

I am migrating an application from Qooxdoo 3.5.1 to 5.0 and, after fixing some behaviour changes related to events (click to tap and so), I'm stuck with a problem dragging onto an iframe.

 

The problem is that when dragging elements onto the iframe, the drag event seems to get stalled at the limit of the iframe. You cannot enter the iframe keeping the drag active (it's curious because if you capture the event in the parent as I do in my app and you enter the iframe passing over a zone not occupied by the iframe, then it seems it seems it captures the event, but in any case the "dragover" event doesn't work).

 

In the examples I put below, you'll see that if you enter the iframe from the top of the window, it doesn't work as I would expect (as it did in 3.5.1), but the drop event is caught. If, instead, you enter the iframe from the bottom (and dragging fast), it doesn't.

 

You can see how behaviours differ from Qx 3.5.1 to Qx 5.0 in following links to the playground. 

 

3.5.1:

 

5.0:

 

Does anybody know if Is this a bug or a behaviour change? If it is the behaviour change, how would you achieve the goal of dropping onto the iframe?

 

Thanks


------------------------------------------------------------------------------

_______________________________________________
qooxdoo-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel
Reply | Threaded
Open this post in threaded view
|

Re: Dragging over an iFrame no longer works when migrating to qx 5.0

Qoo Goo
Thanks, Mustafa.

I had this in mind, but the interaction is both directions, so that some events in the inner iframe's dom are caught to do actions in the ouside qooxdoo controlled area.
Wouldn't this solution break this interaction? (I mean, wouldn't that drop target block the events on layers behind it?)



2015-07-29 15:14 GMT+02:00 Mustafa Sak <[hidden email]>:

Hi,

 

well Drag & Drop handler changed massively because of using of pointer events. Now it looks like the pointer move will be prevented, how ever.

Feel free to open a bug, but I would advise you to overlay the iframe with an „drop target“ layer, which shows the user that an drop does change the whole iframe not even the DOM element you spotted inside the iframe. 

 

May be this workaround can solve your D&D issue and improves your user experience.

Dank & Gruß
Mustafa Sak

Softwareentwickler
Mail Development

1&1 Mail & Media Development & Technology GmbH | Brauerstraße 48 | 76135 Karlsruhe | Germany
Phone: <a href="tel:%2B49%20721%2091374-6977" value="+49721913746977" target="_blank">+49 721 91374-6977
E-Mail: [hidden email] | Web: www.1und1.de

 

Von: Qoo Goo [mailto:[hidden email]]
Gesendet: Mittwoch, 29. Juli 2015 14:27
An: qooxdoo Development
Betreff: [qooxdoo-devel] Dragging over an iFrame no longer works when migrating to qx 5.0

 

Hi,

 

I am migrating an application from Qooxdoo 3.5.1 to 5.0 and, after fixing some behaviour changes related to events (click to tap and so), I'm stuck with a problem dragging onto an iframe.

 

The problem is that when dragging elements onto the iframe, the drag event seems to get stalled at the limit of the iframe. You cannot enter the iframe keeping the drag active (it's curious because if you capture the event in the parent as I do in my app and you enter the iframe passing over a zone not occupied by the iframe, then it seems it seems it captures the event, but in any case the "dragover" event doesn't work).

 

In the examples I put below, you'll see that if you enter the iframe from the top of the window, it doesn't work as I would expect (as it did in 3.5.1), but the drop event is caught. If, instead, you enter the iframe from the bottom (and dragging fast), it doesn't.

 

You can see how behaviours differ from Qx 3.5.1 to Qx 5.0 in following links to the playground. 

 

3.5.1:

 

5.0:

 

Does anybody know if Is this a bug or a behaviour change? If it is the behaviour change, how would you achieve the goal of dropping onto the iframe?

 

Thanks


------------------------------------------------------------------------------

_______________________________________________
qooxdoo-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel



------------------------------------------------------------------------------

_______________________________________________
qooxdoo-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel
Reply | Threaded
Open this post in threaded view
|

Re: Dragging over an iFrame no longer works when migrating to qx 5.0

Mustafa Sak-5

Sure it would block the mouse / pointer events.

 

But iframes should always be used as a sand box. Any comminucation between main frame and an iframe should be done through postmessage and stringified values. It is not recommand to share any instance between frames.

 

So your iframe instance of qooxdoo should not know about any drag session from your main frame. Dropping into the iframe would be recognized as an ordinary „mouseup“ event by your iframe document.

 

So I would advice you to use an overlay anyway and compute the mouse coordinates relative to the iframe inner document. Send a postmessage like „{method: „drop“, coordinates:{x:100, y:50}, value:“any value you like“}“ and detect the element under the point 100 / 50  by using document.elementFromPoint(100, 50) [1] in your iframe runtime. Than do what you ever want to ;)

 

Good luck!

 

[1] https://developer.mozilla.org/de/docs/Web/API/Document/elementFromPoint  

Dank & Gruß
Mustafa Sak

Softwareentwickler
Mail Development

1&1 Mail & Media Development & Technology GmbH | Brauerstraße 48 | 76135 Karlsruhe | Germany
Phone: +49 721 91374-6977
E-Mail: [hidden email] | Web: www.1und1.de

 

Von: Qoo Goo [mailto:[hidden email]]
Gesendet: Mittwoch, 29. Juli 2015 16:01
An: qooxdoo Development
Betreff: Re: [qooxdoo-devel] Dragging over an iFrame no longer works when migrating to qx 5.0

 

Thanks, Mustafa.

 

I had this in mind, but the interaction is both directions, so that some events in the inner iframe's dom are caught to do actions in the ouside qooxdoo controlled area.

Wouldn't this solution break this interaction? (I mean, wouldn't that drop target block the events on layers behind it?)

 

 

 

2015-07-29 15:14 GMT+02:00 Mustafa Sak <[hidden email]>:

Hi,

 

well Drag & Drop handler changed massively because of using of pointer events. Now it looks like the pointer move will be prevented, how ever.

Feel free to open a bug, but I would advise you to overlay the iframe with an „drop target“ layer, which shows the user that an drop does change the whole iframe not even the DOM element you spotted inside the iframe. 

 

May be this workaround can solve your D&D issue and improves your user experience.

Dank & Gruß
Mustafa Sak

Softwareentwickler
Mail Development

1&1 Mail & Media Development & Technology GmbH | Brauerstraße 48 | 76135 Karlsruhe | Germany
Phone: <a href="tel:%2B49%20721%2091374-6977" target="_blank">+49 721 91374-6977
E-Mail: [hidden email] | Web: www.1und1.de

 

Von: Qoo Goo [mailto:[hidden email]]
Gesendet: Mittwoch, 29. Juli 2015 14:27
An: qooxdoo Development
Betreff: [qooxdoo-devel] Dragging over an iFrame no longer works when migrating to qx 5.0

 

Hi,

 

I am migrating an application from Qooxdoo 3.5.1 to 5.0 and, after fixing some behaviour changes related to events (click to tap and so), I'm stuck with a problem dragging onto an iframe.

 

The problem is that when dragging elements onto the iframe, the drag event seems to get stalled at the limit of the iframe. You cannot enter the iframe keeping the drag active (it's curious because if you capture the event in the parent as I do in my app and you enter the iframe passing over a zone not occupied by the iframe, then it seems it seems it captures the event, but in any case the "dragover" event doesn't work).

 

In the examples I put below, you'll see that if you enter the iframe from the top of the window, it doesn't work as I would expect (as it did in 3.5.1), but the drop event is caught. If, instead, you enter the iframe from the bottom (and dragging fast), it doesn't.

 

You can see how behaviours differ from Qx 3.5.1 to Qx 5.0 in following links to the playground. 

 

3.5.1:

 

5.0:

 

Does anybody know if Is this a bug or a behaviour change? If it is the behaviour change, how would you achieve the goal of dropping onto the iframe?

 

Thanks


------------------------------------------------------------------------------

_______________________________________________
qooxdoo-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel

 


------------------------------------------------------------------------------

_______________________________________________
qooxdoo-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel
Reply | Threaded
Open this post in threaded view
|

Re: Dragging over an iFrame no longer works when migrating to qx 5.0

Qoo Goo
I am not really dragging from the iframe to the parent, but only capturing click events and sending them via a callback function. The drag&drop action is only in the opposite direction (from the parent to the iframe). 

I don't see any problem in communicating with the iframes this way as far as I control both sources, which is the case. But anyway it's too late for me to rewrite everything (the application is very big, started with Qx 0.7 and although it has successfully passed many migrations, it's too big to rewrite certain things).

Before thinking in starting such a huge job, I think I will spend some time digging into Qooxdoo code trying to figure out why it is not working properly anymore. 

Any clues where to start?

Thanks

2015-07-29 18:53 GMT+02:00 Mustafa Sak <[hidden email]>:

Sure it would block the mouse / pointer events.

 

But iframes should always be used as a sand box. Any comminucation between main frame and an iframe should be done through postmessage and stringified values. It is not recommand to share any instance between frames.

 

So your iframe instance of qooxdoo should not know about any drag session from your main frame. Dropping into the iframe would be recognized as an ordinary „mouseup“ event by your iframe document.

 

So I would advice you to use an overlay anyway and compute the mouse coordinates relative to the iframe inner document. Send a postmessage like „{method: „drop“, coordinates:{x:100, y:50}, value:“any value you like“}“ and detect the element under the point 100 / 50  by using document.elementFromPoint(100, 50) [1] in your iframe runtime. Than do what you ever want to ;)

 

Good luck!

 

[1] https://developer.mozilla.org/de/docs/Web/API/Document/elementFromPoint  

Dank & Gruß
Mustafa Sak

Softwareentwickler
Mail Development

1&1 Mail & Media Development & Technology GmbH | Brauerstraße 48 | 76135 Karlsruhe | Germany
Phone: <a href="tel:%2B49%20721%2091374-6977" value="+49721913746977" target="_blank">+49 721 91374-6977
E-Mail: [hidden email] | Web: www.1und1.de

 

Von: Qoo Goo [mailto:[hidden email]]
Gesendet: Mittwoch, 29. Juli 2015 16:01
An: qooxdoo Development
Betreff: Re: [qooxdoo-devel] Dragging over an iFrame no longer works when migrating to qx 5.0

 

Thanks, Mustafa.

 

I had this in mind, but the interaction is both directions, so that some events in the inner iframe's dom are caught to do actions in the ouside qooxdoo controlled area.

Wouldn't this solution break this interaction? (I mean, wouldn't that drop target block the events on layers behind it?)

 

 

 

2015-07-29 15:14 GMT+02:00 Mustafa Sak <[hidden email]>:

Hi,

 

well Drag & Drop handler changed massively because of using of pointer events. Now it looks like the pointer move will be prevented, how ever.

Feel free to open a bug, but I would advise you to overlay the iframe with an „drop target“ layer, which shows the user that an drop does change the whole iframe not even the DOM element you spotted inside the iframe. 

 

May be this workaround can solve your D&D issue and improves your user experience.

Dank & Gruß
Mustafa Sak

Softwareentwickler
Mail Development

1&1 Mail & Media Development & Technology GmbH | Brauerstraße 48 | 76135 Karlsruhe | Germany
Phone: <a href="tel:%2B49%20721%2091374-6977" target="_blank">+49 721 91374-6977
E-Mail: [hidden email] | Web: www.1und1.de

 

Von: Qoo Goo [mailto:[hidden email]]
Gesendet: Mittwoch, 29. Juli 2015 14:27
An: qooxdoo Development
Betreff: [qooxdoo-devel] Dragging over an iFrame no longer works when migrating to qx 5.0

 

Hi,

 

I am migrating an application from Qooxdoo 3.5.1 to 5.0 and, after fixing some behaviour changes related to events (click to tap and so), I'm stuck with a problem dragging onto an iframe.

 

The problem is that when dragging elements onto the iframe, the drag event seems to get stalled at the limit of the iframe. You cannot enter the iframe keeping the drag active (it's curious because if you capture the event in the parent as I do in my app and you enter the iframe passing over a zone not occupied by the iframe, then it seems it seems it captures the event, but in any case the "dragover" event doesn't work).

 

In the examples I put below, you'll see that if you enter the iframe from the top of the window, it doesn't work as I would expect (as it did in 3.5.1), but the drop event is caught. If, instead, you enter the iframe from the bottom (and dragging fast), it doesn't.

 

You can see how behaviours differ from Qx 3.5.1 to Qx 5.0 in following links to the playground. 

 

3.5.1:

 

5.0:

 

Does anybody know if Is this a bug or a behaviour change? If it is the behaviour change, how would you achieve the goal of dropping onto the iframe?

 

Thanks


------------------------------------------------------------------------------

_______________________________________________
qooxdoo-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel

 


------------------------------------------------------------------------------

_______________________________________________
qooxdoo-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel



------------------------------------------------------------------------------

_______________________________________________
qooxdoo-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel
Reply | Threaded
Open this post in threaded view
|

Re: Dragging over an iFrame no longer works when migrating to qx 5.0

Mustafa Sak-5

As I could see QX 4.0.1 behaves more stable than 4.1 or 5.0, I would advise you to start from that branch. We would love to see a pull request from you!

 

Dank & Gruß
Mustafa Sak

Softwareentwickler
Mail Development

1&1 Mail & Media Development & Technology GmbH | Brauerstraße 48 | 76135 Karlsruhe | Germany
Phone: +49 721 91374-6977
E-Mail: [hidden email] | Web: www.1und1.de

 

Von: Qoo Goo [mailto:[hidden email]]
Gesendet: Freitag, 31. Juli 2015 09:35
An: qooxdoo Development
Betreff: Re: [qooxdoo-devel] Dragging over an iFrame no longer works when migrating to qx 5.0

 

I am not really dragging from the iframe to the parent, but only capturing click events and sending them via a callback function. The drag&drop action is only in the opposite direction (from the parent to the iframe). 

 

I don't see any problem in communicating with the iframes this way as far as I control both sources, which is the case. But anyway it's too late for me to rewrite everything (the application is very big, started with Qx 0.7 and although it has successfully passed many migrations, it's too big to rewrite certain things).

 

Before thinking in starting such a huge job, I think I will spend some time digging into Qooxdoo code trying to figure out why it is not working properly anymore. 

 

Any clues where to start?

 

Thanks

 

2015-07-29 18:53 GMT+02:00 Mustafa Sak <[hidden email]>:

Sure it would block the mouse / pointer events.

 

But iframes should always be used as a sand box. Any comminucation between main frame and an iframe should be done through postmessage and stringified values. It is not recommand to share any instance between frames.

 

So your iframe instance of qooxdoo should not know about any drag session from your main frame. Dropping into the iframe would be recognized as an ordinary „mouseup“ event by your iframe document.

 

So I would advice you to use an overlay anyway and compute the mouse coordinates relative to the iframe inner document. Send a postmessage like „{method: „drop“, coordinates:{x:100, y:50}, value:“any value you like“}“ and detect the element under the point 100 / 50  by using document.elementFromPoint(100, 50) [1] in your iframe runtime. Than do what you ever want to ;)

 

Good luck!

 

[1] https://developer.mozilla.org/de/docs/Web/API/Document/elementFromPoint  

Dank & Gruß
Mustafa Sak

Softwareentwickler
Mail Development

1&1 Mail & Media Development & Technology GmbH | Brauerstraße 48 | 76135 Karlsruhe | Germany
Phone: <a href="tel:%2B49%20721%2091374-6977" target="_blank">+49 721 91374-6977
E-Mail: [hidden email] | Web: www.1und1.de

 

Von: Qoo Goo [mailto:[hidden email]]
Gesendet: Mittwoch, 29. Juli 2015 16:01
An: qooxdoo Development
Betreff: Re: [qooxdoo-devel] Dragging over an iFrame no longer works when migrating to qx 5.0

 

Thanks, Mustafa.

 

I had this in mind, but the interaction is both directions, so that some events in the inner iframe's dom are caught to do actions in the ouside qooxdoo controlled area.

Wouldn't this solution break this interaction? (I mean, wouldn't that drop target block the events on layers behind it?)

 

 

 

2015-07-29 15:14 GMT+02:00 Mustafa Sak <[hidden email]>:

Hi,

 

well Drag & Drop handler changed massively because of using of pointer events. Now it looks like the pointer move will be prevented, how ever.

Feel free to open a bug, but I would advise you to overlay the iframe with an „drop target“ layer, which shows the user that an drop does change the whole iframe not even the DOM element you spotted inside the iframe. 

 

May be this workaround can solve your D&D issue and improves your user experience.

Dank & Gruß
Mustafa Sak

Softwareentwickler
Mail Development

1&1 Mail & Media Development & Technology GmbH | Brauerstraße 48 | 76135 Karlsruhe | Germany
Phone: <a href="tel:%2B49%20721%2091374-6977" target="_blank">+49 721 91374-6977
E-Mail: [hidden email] | Web: www.1und1.de

 

Von: Qoo Goo [mailto:[hidden email]]
Gesendet: Mittwoch, 29. Juli 2015 14:27
An: qooxdoo Development
Betreff: [qooxdoo-devel] Dragging over an iFrame no longer works when migrating to qx 5.0

 

Hi,

 

I am migrating an application from Qooxdoo 3.5.1 to 5.0 and, after fixing some behaviour changes related to events (click to tap and so), I'm stuck with a problem dragging onto an iframe.

 

The problem is that when dragging elements onto the iframe, the drag event seems to get stalled at the limit of the iframe. You cannot enter the iframe keeping the drag active (it's curious because if you capture the event in the parent as I do in my app and you enter the iframe passing over a zone not occupied by the iframe, then it seems it seems it captures the event, but in any case the "dragover" event doesn't work).

 

In the examples I put below, you'll see that if you enter the iframe from the top of the window, it doesn't work as I would expect (as it did in 3.5.1), but the drop event is caught. If, instead, you enter the iframe from the bottom (and dragging fast), it doesn't.

 

You can see how behaviours differ from Qx 3.5.1 to Qx 5.0 in following links to the playground. 

 

3.5.1:

 

5.0:

 

Does anybody know if Is this a bug or a behaviour change? If it is the behaviour change, how would you achieve the goal of dropping onto the iframe?

 

Thanks


------------------------------------------------------------------------------

_______________________________________________
qooxdoo-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel

 


------------------------------------------------------------------------------

_______________________________________________
qooxdoo-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel

 


------------------------------------------------------------------------------

_______________________________________________
qooxdoo-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel
Reply | Threaded
Open this post in threaded view
|

Re: Dragging over an iFrame no longer works when migrating to qx 5.0

Qoo Goo
Thanks, Mustafa. This was a great clue!

The change was from 4.0.1 to 4.0.2 and I've been able to find the file (qx.event.handler.DragDrop) and the commit breaking the behavior: it's the ad38c72a3cbcbb61132504d7454d512eddbcf4a4 (committed by you) labelled 

"[Bug #8660] Drag & Drop based on pointer events again, which solve the target problem. __escaped property not necessary anmore. Minor fix on MDragDropScrolling. table pane does not need to change the gesture event target anymore."

I have it working as expected on my side and if you want I can make a pull request, but my understanding of Qooxdoo internals is not yours and I am not really sure it will have not collateral effects (I still didn't find any). Particularly, I've restored the event handling code for the "track" event in that file.

As said, if you want me do a pull request, I am more than open to do it.

Thanks!

2015-07-31 9:44 GMT+02:00 Mustafa Sak <[hidden email]>:

As I could see QX 4.0.1 behaves more stable than 4.1 or 5.0, I would advise you to start from that branch. We would love to see a pull request from you!

 

Dank & Gruß
Mustafa Sak

Softwareentwickler
Mail Development

1&1 Mail & Media Development & Technology GmbH | Brauerstraße 48 | 76135 Karlsruhe | Germany
Phone: <a href="tel:%2B49%20721%2091374-6977" value="+49721913746977" target="_blank">+49 721 91374-6977
E-Mail: [hidden email] | Web: www.1und1.de

 

Von: Qoo Goo [mailto:[hidden email]]
Gesendet: Freitag, 31. Juli 2015 09:35


An: qooxdoo Development
Betreff: Re: [qooxdoo-devel] Dragging over an iFrame no longer works when migrating to qx 5.0

 

I am not really dragging from the iframe to the parent, but only capturing click events and sending them via a callback function. The drag&drop action is only in the opposite direction (from the parent to the iframe). 

 

I don't see any problem in communicating with the iframes this way as far as I control both sources, which is the case. But anyway it's too late for me to rewrite everything (the application is very big, started with Qx 0.7 and although it has successfully passed many migrations, it's too big to rewrite certain things).

 

Before thinking in starting such a huge job, I think I will spend some time digging into Qooxdoo code trying to figure out why it is not working properly anymore. 

 

Any clues where to start?

 

Thanks

 

2015-07-29 18:53 GMT+02:00 Mustafa Sak <[hidden email]>:

Sure it would block the mouse / pointer events.

 

But iframes should always be used as a sand box. Any comminucation between main frame and an iframe should be done through postmessage and stringified values. It is not recommand to share any instance between frames.

 

So your iframe instance of qooxdoo should not know about any drag session from your main frame. Dropping into the iframe would be recognized as an ordinary „mouseup“ event by your iframe document.

 

So I would advice you to use an overlay anyway and compute the mouse coordinates relative to the iframe inner document. Send a postmessage like „{method: „drop“, coordinates:{x:100, y:50}, value:“any value you like“}“ and detect the element under the point 100 / 50  by using document.elementFromPoint(100, 50) [1] in your iframe runtime. Than do what you ever want to ;)

 

Good luck!

 

[1] https://developer.mozilla.org/de/docs/Web/API/Document/elementFromPoint  

Dank & Gruß
Mustafa Sak

Softwareentwickler
Mail Development

1&1 Mail & Media Development & Technology GmbH | Brauerstraße 48 | 76135 Karlsruhe | Germany
Phone: <a href="tel:%2B49%20721%2091374-6977" target="_blank">+49 721 91374-6977
E-Mail: [hidden email] | Web: www.1und1.de

 

Von: Qoo Goo [mailto:[hidden email]]
Gesendet: Mittwoch, 29. Juli 2015 16:01
An: qooxdoo Development
Betreff: Re: [qooxdoo-devel] Dragging over an iFrame no longer works when migrating to qx 5.0

 

Thanks, Mustafa.

 

I had this in mind, but the interaction is both directions, so that some events in the inner iframe's dom are caught to do actions in the ouside qooxdoo controlled area.

Wouldn't this solution break this interaction? (I mean, wouldn't that drop target block the events on layers behind it?)

 

 

 

2015-07-29 15:14 GMT+02:00 Mustafa Sak <[hidden email]>:

Hi,

 

well Drag & Drop handler changed massively because of using of pointer events. Now it looks like the pointer move will be prevented, how ever.

Feel free to open a bug, but I would advise you to overlay the iframe with an „drop target“ layer, which shows the user that an drop does change the whole iframe not even the DOM element you spotted inside the iframe. 

 

May be this workaround can solve your D&D issue and improves your user experience.

Dank & Gruß
Mustafa Sak

Softwareentwickler
Mail Development

1&1 Mail & Media Development & Technology GmbH | Brauerstraße 48 | 76135 Karlsruhe | Germany
Phone: <a href="tel:%2B49%20721%2091374-6977" target="_blank">+49 721 91374-6977
E-Mail: [hidden email] | Web: www.1und1.de

 

Von: Qoo Goo [mailto:[hidden email]]
Gesendet: Mittwoch, 29. Juli 2015 14:27
An: qooxdoo Development
Betreff: [qooxdoo-devel] Dragging over an iFrame no longer works when migrating to qx 5.0

 

Hi,

 

I am migrating an application from Qooxdoo 3.5.1 to 5.0 and, after fixing some behaviour changes related to events (click to tap and so), I'm stuck with a problem dragging onto an iframe.

 

The problem is that when dragging elements onto the iframe, the drag event seems to get stalled at the limit of the iframe. You cannot enter the iframe keeping the drag active (it's curious because if you capture the event in the parent as I do in my app and you enter the iframe passing over a zone not occupied by the iframe, then it seems it seems it captures the event, but in any case the "dragover" event doesn't work).

 

In the examples I put below, you'll see that if you enter the iframe from the top of the window, it doesn't work as I would expect (as it did in 3.5.1), but the drop event is caught. If, instead, you enter the iframe from the bottom (and dragging fast), it doesn't.

 

You can see how behaviours differ from Qx 3.5.1 to Qx 5.0 in following links to the playground. 

 

3.5.1:

 

5.0:

 

Does anybody know if Is this a bug or a behaviour change? If it is the behaviour change, how would you achieve the goal of dropping onto the iframe?

 

Thanks


------------------------------------------------------------------------------

_______________________________________________
qooxdoo-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel

 


------------------------------------------------------------------------------

_______________________________________________
qooxdoo-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel

 


------------------------------------------------------------------------------

_______________________________________________
qooxdoo-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel



------------------------------------------------------------------------------

_______________________________________________
qooxdoo-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel
Reply | Threaded
Open this post in threaded view
|

Re: Dragging over an iFrame no longer works when migrating to qx 5.0

Qoo Goo
FYI, I filed a bug in bugzilla (http://bugzilla.qooxdoo.org/show_bug.cgi?id=9187) and gave a possible solution attaching my fix.

In parallel, I did a pull request in github with the fix.

Many thanks

2015-07-31 13:42 GMT+02:00 Qoo Goo <[hidden email]>:
Thanks, Mustafa. This was a great clue!

The change was from 4.0.1 to 4.0.2 and I've been able to find the file (qx.event.handler.DragDrop) and the commit breaking the behavior: it's the ad38c72a3cbcbb61132504d7454d512eddbcf4a4 (committed by you) labelled 

"[Bug #8660] Drag & Drop based on pointer events again, which solve the target problem. __escaped property not necessary anmore. Minor fix on MDragDropScrolling. table pane does not need to change the gesture event target anymore."

I have it working as expected on my side and if you want I can make a pull request, but my understanding of Qooxdoo internals is not yours and I am not really sure it will have not collateral effects (I still didn't find any). Particularly, I've restored the event handling code for the "track" event in that file.

As said, if you want me do a pull request, I am more than open to do it.

Thanks!

2015-07-31 9:44 GMT+02:00 Mustafa Sak <[hidden email]>:

As I could see QX 4.0.1 behaves more stable than 4.1 or 5.0, I would advise you to start from that branch. We would love to see a pull request from you!

 

Dank & Gruß
Mustafa Sak

Softwareentwickler
Mail Development

1&1 Mail & Media Development & Technology GmbH | Brauerstraße 48 | 76135 Karlsruhe | Germany
Phone: <a href="tel:%2B49%20721%2091374-6977" value="+49721913746977" target="_blank">+49 721 91374-6977
E-Mail: [hidden email] | Web: www.1und1.de

 

Von: Qoo Goo [mailto:[hidden email]]
Gesendet: Freitag, 31. Juli 2015 09:35


An: qooxdoo Development
Betreff: Re: [qooxdoo-devel] Dragging over an iFrame no longer works when migrating to qx 5.0

 

I am not really dragging from the iframe to the parent, but only capturing click events and sending them via a callback function. The drag&drop action is only in the opposite direction (from the parent to the iframe). 

 

I don't see any problem in communicating with the iframes this way as far as I control both sources, which is the case. But anyway it's too late for me to rewrite everything (the application is very big, started with Qx 0.7 and although it has successfully passed many migrations, it's too big to rewrite certain things).

 

Before thinking in starting such a huge job, I think I will spend some time digging into Qooxdoo code trying to figure out why it is not working properly anymore. 

 

Any clues where to start?

 

Thanks

 

2015-07-29 18:53 GMT+02:00 Mustafa Sak <[hidden email]>:

Sure it would block the mouse / pointer events.

 

But iframes should always be used as a sand box. Any comminucation between main frame and an iframe should be done through postmessage and stringified values. It is not recommand to share any instance between frames.

 

So your iframe instance of qooxdoo should not know about any drag session from your main frame. Dropping into the iframe would be recognized as an ordinary „mouseup“ event by your iframe document.

 

So I would advice you to use an overlay anyway and compute the mouse coordinates relative to the iframe inner document. Send a postmessage like „{method: „drop“, coordinates:{x:100, y:50}, value:“any value you like“}“ and detect the element under the point 100 / 50  by using document.elementFromPoint(100, 50) [1] in your iframe runtime. Than do what you ever want to ;)

 

Good luck!

 

[1] https://developer.mozilla.org/de/docs/Web/API/Document/elementFromPoint  

Dank & Gruß
Mustafa Sak

Softwareentwickler
Mail Development

1&1 Mail & Media Development & Technology GmbH | Brauerstraße 48 | 76135 Karlsruhe | Germany
Phone: <a href="tel:%2B49%20721%2091374-6977" target="_blank">+49 721 91374-6977
E-Mail: [hidden email] | Web: www.1und1.de

 

Von: Qoo Goo [mailto:[hidden email]]
Gesendet: Mittwoch, 29. Juli 2015 16:01
An: qooxdoo Development
Betreff: Re: [qooxdoo-devel] Dragging over an iFrame no longer works when migrating to qx 5.0

 

Thanks, Mustafa.

 

I had this in mind, but the interaction is both directions, so that some events in the inner iframe's dom are caught to do actions in the ouside qooxdoo controlled area.

Wouldn't this solution break this interaction? (I mean, wouldn't that drop target block the events on layers behind it?)

 

 

 

2015-07-29 15:14 GMT+02:00 Mustafa Sak <[hidden email]>:

Hi,

 

well Drag & Drop handler changed massively because of using of pointer events. Now it looks like the pointer move will be prevented, how ever.

Feel free to open a bug, but I would advise you to overlay the iframe with an „drop target“ layer, which shows the user that an drop does change the whole iframe not even the DOM element you spotted inside the iframe. 

 

May be this workaround can solve your D&D issue and improves your user experience.

Dank & Gruß
Mustafa Sak

Softwareentwickler
Mail Development

1&1 Mail & Media Development & Technology GmbH | Brauerstraße 48 | 76135 Karlsruhe | Germany
Phone: <a href="tel:%2B49%20721%2091374-6977" target="_blank">+49 721 91374-6977
E-Mail: [hidden email] | Web: www.1und1.de

 

Von: Qoo Goo [mailto:[hidden email]]
Gesendet: Mittwoch, 29. Juli 2015 14:27
An: qooxdoo Development
Betreff: [qooxdoo-devel] Dragging over an iFrame no longer works when migrating to qx 5.0

 

Hi,

 

I am migrating an application from Qooxdoo 3.5.1 to 5.0 and, after fixing some behaviour changes related to events (click to tap and so), I'm stuck with a problem dragging onto an iframe.

 

The problem is that when dragging elements onto the iframe, the drag event seems to get stalled at the limit of the iframe. You cannot enter the iframe keeping the drag active (it's curious because if you capture the event in the parent as I do in my app and you enter the iframe passing over a zone not occupied by the iframe, then it seems it seems it captures the event, but in any case the "dragover" event doesn't work).

 

In the examples I put below, you'll see that if you enter the iframe from the top of the window, it doesn't work as I would expect (as it did in 3.5.1), but the drop event is caught. If, instead, you enter the iframe from the bottom (and dragging fast), it doesn't.

 

You can see how behaviours differ from Qx 3.5.1 to Qx 5.0 in following links to the playground. 

 

3.5.1:

 

5.0:

 

Does anybody know if Is this a bug or a behaviour change? If it is the behaviour change, how would you achieve the goal of dropping onto the iframe?

 

Thanks


------------------------------------------------------------------------------

_______________________________________________
qooxdoo-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel

 


------------------------------------------------------------------------------

_______________________________________________
qooxdoo-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel

 


------------------------------------------------------------------------------

_______________________________________________
qooxdoo-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel




------------------------------------------------------------------------------

_______________________________________________
qooxdoo-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel