Tab drag-n-drop opens link in other application context
Hi, The new tab drag-n-drop feature is a nice, useful addition to Vivaldi. So, congrats (and thanks) on implementing it. However, I encounter strange behavior when dragging a new tab outside of its original window to create a new window : Not only does it create the new Vivaldi window, as expected, but it also seems to drop the URL to whatever window I dropped it on. For instance, if I am dragging the tab, then happen to release the mouse button on an IE window, then IE opens the corresponding webpage. Or, if I release the mouse on the IDE (JetBrains PHPStorm) I use at work, it creates a new window in the IDE with the following text (In tihis case the URL for google's security blog) : [code][InternetShortcut] URL=https://security.googleblog.com/[/code] I don't think this is intended behavior ? Windows 10 x64 build 1607, Vivaldi 1.5.618.8 x64 [i]Side note : I also encountered the already reported bug of a tab disappearing when re-attaching it to another window.[/i]
It is intended behavior, so it actually is a feature.
Still happens in 1.5.626.8 (x64).
I highly doubt, contrary to what T_T08i has posted (was it irony ?), that it would be a feature, given no other browser acts like this, and the use case is null.
Bug report filed [VB-22010].
Actually it IS a feature
This was confirmed as such in the Snapshot Blog
Yes, Vivaldi is adhering to a standard and hence it's inter-operable by design.
Yes, it's a feature. The mime-type of the dragged object is "text/uri-list", so every software capable of handling that kind of object will do it.
OK, my bad.
Guess I didn't read the comments section thoroughly. :oops:
Anyway, even as an intended feature, I still find it extremely impractical : As a developer, I often have numerous windows open, especially the IDE in full-screen. That means that everytime I drag-drop a tab, it is opened in some application, in addition to opening a new Vivaldi Window.
I can understand the reasoning behind such a behavior though, standards and interoperability are generally good things.
If the feature is meant that way, it could also be considered an incorrect behavior that, if the intended action is to open the link in the target application context, a new window is also created.
In both cases, only one action (either the new window, or the handling by the target application) is expected. But both happen.
In that case, could there be either (or both) :
- An option to enable/disable such a feature, or set the default behavior/priority ? (i.e. "if dropped on an app that can handle that mimetype, by default, a-open new window OR b-let the app manage")
- A key modifier (e.g. press shift while dragging) to select the behavior (for instance, as opposed to the default set behavior) ?
Edit : I kind of understand why it works that way. If you want to copy the link to, say, firefox, but not close it in Vivaldi, then for it to remain in the same window and be handled as a MIME object you pass to firefox is A-OK.
The problem is when dragging a tab to outside a Vivaldi window, there is no way for Vivaldi to distinguish between the user intent of "I want to drop the link on this app" and "I want a new window", when the tab hovers over an external app's window.
(I don't think I can edit the bug report, so I have to fill in a new one ?)
Yes, you pinpointed the issue with this behavior, and DnD in general :
We don't know what the user wants to do.
Does he wants to take his Youtube tab, and drag it to VLC (VLC doesn't support that, yet, but I asked for it on Twitter) to play it "Natively" ? Does he wants to create a link on his desktop to this page ? Drag the tab to another browser, like Fx, Opera or Chr ? Or paste the URL in LibreOffice ?
Or does he just want to open a new window ?
So, some fixes, options or tricks will be needed here. DnD in Vivaldi is still in its infancy. The "DnD on other apps" might also disappear to "fix" the issues it created (I hope not, but I don't have that kind of power).
So, yeah, the issue is known, but not the solution
Sorry that you thought that my comment was ironic. It was not my intention. I should have posted the quotes as well. I will do so in the future.
@IcePanther: Agreed that both things should not happen at the same time. So how do you think it would work for you if only the behaviour of passing the tab to other program remained (the new window is not created when dropping on another program), but there would be another feature - dropping a tab in the area of its own window would create a new Vivaldi window with the tab?
In such case you would rather not have to move the tab outside the window to create a new one and you would only move tabs to other programs if you would really like them to take action on the tab's data - like VLC playing the music from YouTube tab. Makes sense?
No problem, I also shouldn't have make assumptions, so lesson learned for me, too.
If I understand your post correctly, the behavior you describe is :
- Dropping a tab outside the Vivaldi window would be a pure "object" drag-and-drop to the drop context (other application) ;
- Dropping the tab somewhere on its own window (where ? This remains a bit unclear to me) would send it to the new window.
This would indeed provide a deterministic way for the user to either create a new window, or drop the link as an object to the other application.
The only downside I can think of, is that all other browsers (at least the ones I use, i.e. Chrome, IE/Edge, Firefox) do create a new window when dragging a tab outside of its original window, so new users may be surprised at first; however, seeing how Vivaldi is aimed at power users, the major part of the user base may get used to it.
Apart from that, it would make sense, yes. Especially, but that's only my opinion, if the drop area makes sense, for instance, it that happens when dropping the tab on the "+" button or something that has an equal level of meaning, indication ; and/or, in case the drop area is the whole window, if there is a visual indication (e.g. with a "+" icon appearing at a corner of the dragged tab "header"/object) that dropping the tab there will create a new window.
A little out of scope, but :
If such an "inside own window" drop feature existed, it would even be possible (however, I don't know the development time/cost, so maybe not feasible_) to have a setting only for "drop outside window" that would allow users to choose between
- open new window (same as other browsers)
- drop URL object (enabling interoperability)
because in both cases, users would still be able to drop the tab inside the window to open a new one, so no functionality loss in case they choose the latter option._