Details
-
Bug
-
Resolution: Done
-
P2: Important
-
4.7.0
-
None
-
Linux, X11, x86_64.
-
d70cb669324be5ec94fdf7d5620e28b55295c295
Description
If the dropEvent() shows a modal dialog box, and the user takes more than 5 seconds to answer, the transaction_expiry_timer from qdnd_x11.cpp fires, and the transaction is deleted. So when the user says OK in the dialog box, there is no more data available.
The actual use case for this is "drag the image from ksnapshot, drop it in konqueror-file-manager, it asks for a filename and for which format to save in", not a stupid qmessagebox like in the testcase
Steps to reproduce: compile the attached testcase, fix the image filename to point an existing image, run the application twice, dnd between the two windows. If you answer the question quick it works, if you wait 5 seconds to answer the question, the dnd provides no data (and the program asserts).
Can someone tell me what is the actual usefulness of the transaction_expiry_timer? If it's necessary for memory cleanup, then it sounds like it should either be made much much longer (like 1 hour), or it shouldn't be started until the dnd operation is really finished? I don't know the XDND protocol though.