Page 1 of 1

Resolve OS wide Drag+Drop lock

Posted: 02 Sep 2019 09:07
by jupe
When you have a XY dialog box open that has been invoked (or the script even just contains) using <get drop>, it locks up drag and drop OS wide until the script is finished, I was hoping that there might be a way that you could store the contents of drop then release it maybe?, or maybe even just make it not affect the whole OS?

If you want to test what I am describing, below is an example snippet if it makes it easier for you, just drop a file onto the new CTB, then try and d'n'drop in your web browser or another XY window, or anywhere else in the OS while the dialog is open, I assume it is like this on other Windows versions besides 10?, I have encountered this on each iteration of Win10 since I started using XY, but have never used XY on anything other than Win10.

Code: Select all

Snip: CTB 1
  XYplorer 20.30.0012, 1/9/19 3:44:32 PM
Action
  NewUserButton
Name
  
Icon
  
ScriptL
  echo <drop>;
ScriptR
  
FireClick
  0
I may be in a minority, but I pretty much always run multiple instances of XY, so this issue is probably more noticeable for me, usually I encounter it mainly when I have run a script and the output is in a text dialog and I am trying to do something in another window based on the text contents, or I have left a dialog open in the background and try and drag links around in my browser, which no longer functions until I find the correct XY window and close the dialog. I have been working around this issue for ages, so no worries though if it's not possible, but it would be a welcome improvement if it is.

Re: Resolve OS wide Drag+Drop lock

Posted: 02 Sep 2019 10:30
by Marco
+1

I noticed that too, viewtopic.php?f=3&t=20072

Re: Resolve OS wide Drag+Drop lock

Posted: 02 Sep 2019 14:29
by admin
Did not test it yet, but are you sure it is related to the use of <get drop>? I would rather think the interrupted DND operation (interrupted by the msgbox) is the cause. Windows allows only one DND at a time, and if the current one is not completed no new one can start.

I see a chance to complete the DND before the script starts. That should solve it. But first I need an answer to the above. (I can find out later myself, of course...).

Re: Resolve OS wide Drag+Drop lock

Posted: 02 Sep 2019 14:49
by jupe
I don't really understand your question, I realize you can only perform 1 D+D at a time, and yes it is the msg box being open that is causing the script to stay active which I was using to demonstrate the issue at hand, but it also because the script contains <drop>, I feel the <drop> variable needs to be filled (caught earlier as you say) then the D+D operation released, unsure if that is possible though. What you have stated in your last paragraph though is exactly the solution I envision could possibly work.

for instance, if the script went like below, it still occurs, if that is what you mean?

Code: Select all

  $test = <drop>;
  msg "unrelated action";
  echo $test;

Re: Resolve OS wide Drag+Drop lock

Posted: 02 Sep 2019 15:20
by admin
I would expect that even this script would have the same effect:

Code: Select all

msg "unrelated action";

Re: Resolve OS wide Drag+Drop lock

Posted: 02 Sep 2019 15:28
by jupe
Ahh..the penny drops, now I see what you meant, yes you're correct.

Re: Resolve OS wide Drag+Drop lock

Posted: 02 Sep 2019 16:38
by admin
I looked into it and I'm afraid nothing can be done. This is just how Windows works.

Theoretically I could run the script from a timer *after* the DND operation is finished, but this will cause trouble sooner or later. When you try cheating Windows you normally lose in a nasty way...

Re: Resolve OS wide Drag+Drop lock

Posted: 03 Sep 2019 06:29
by jupe
C'est la vie.

Thanks for checking into it anyway.