[Linux] Fix drag'n'drop on Linux
Categories
(Core :: Widget: Gtk, enhancement, P2)
Tracking
()
People
(Reporter: otte, Unassigned)
References
(Depends on 32 open bugs, Blocks 1 open bug)
Details
User Agent: Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:91.0) Gecko/20100101 Firefox/91.0
Steps to reproduce:
- Drag an image from Firefox
- Drag onto an application expecting images
Actual results:
The drop is rejected
Expected results:
The drop works, just like it does in Windows.
I was working on image DND support in GTK and tried with Firefox, and It seems that Firefox only provides its internal mime types for images (like application/x-moz-nativeimage) but not image/png or image/jpeg and that severly limits where images can be dragged.
I did not test if this is just about Wayland or also affects X11.
Comment 1•3 years ago
|
||
The Bugbug bot thinks this bug should belong to the 'Core::Widget: Gtk' component, and is moving the bug to that component. Please revert this change in case you think the bot is wrong.
Comment 2•3 years ago
|
||
Benjamin, which application do you use as a target? I see D&D works (for some images) with Nautilus.
Comment 3•3 years ago
|
||
Also gimp works for me. But it has to be a real image and not an html placeholder (which is provided by google image search page).
Reporter | ||
Comment 4•3 years ago
|
||
I think both Gimp (which uses X11 and XWayland, so that's a separate can of worms anyway) and Nautilus accept file drops, and Firefox provides XdndDirectSave. I'm currently blanking on a good example for apps that accept DND drags for images but not just files, so all I can offer is the demos I wrote in gtk4 master to test just that case, but they aren't in distros yet.
Here's a way to reproduce:
-
Run WAYLAND_DEBUG=1 build/demos/widget-factory/gtk4-widget-factory 2>&1 | grep wl_data_source
-
Start an image drag (I usually use imgur images like https://i.imgur.com/YpFk55I.png ). The drag can immediately be cancelled.
-
Observe the debug output.
For me it contains this for the above page:
[3316387.467] -> wl_data_device_manager@11.create_data_source(new id wl_data_source@72)
[3316387.483] -> wl_data_source@72.offer("text/x-moz-url")
[3316387.494] -> wl_data_source@72.offer("_NETSCAPE_URL")
[3316387.504] -> wl_data_source@72.offer("text/x-moz-url-data")
[3316387.514] -> wl_data_source@72.offer("text/x-moz-url-desc")
[3316387.524] -> wl_data_source@72.offer("application/x-moz-custom-clipdata")
[3316387.534] -> wl_data_source@72.offer("text/_moz_htmlcontext")
[3316387.543] -> wl_data_source@72.offer("text/_moz_htmlinfo")
[3316387.552] -> wl_data_source@72.offer("text/html")
[3316387.561] -> wl_data_source@72.offer("text/unicode")
[3316387.571] -> wl_data_source@72.offer("text/plain;charset=utf-8")
[3316387.581] -> wl_data_source@72.offer("text/plain")
[3316387.590] -> wl_data_source@72.offer("application/x-moz-nativeimage")
[3316387.599] -> wl_data_source@72.offer("application/x-moz-file-promise")
[3316387.609] -> wl_data_source@72.offer("XdndDirectSave0")
[3316387.619] -> wl_data_source@72.offer("application/x-moz-file-promise-url")
[3316387.628] -> wl_data_source@72.offer("application/x-moz-file-promise-dest-filename")
[3316387.642] -> wl_data_source@72.set_actions(3)
[3316387.653] -> wl_data_device@24.start_drag(wl_data_source@72, wl_surface@52, wl_surface@57, 748864)
And that does not include "image/png" (or any other image format).
Comment 5•3 years ago
|
||
Okay, have a patch ready although I can't find any regular application which accept image/png (or jpg and so on) as a drop target :)
Anyway, beside the image/* drop support we definitely needs to:
- remove XdndDirectSave0 from images/files accessible by URL as it fails. XdndDirectSave0 seems to work for local files only.
- when we do D&D of html links we should use some decent file name, perhaps x-moz-url-desc or so and not 'url' and similar one.
Reporter | ||
Comment 6•3 years ago
|
||
I was just reminded: You can flatpak install https://nightly.gnome.org/repo/appstream/org.gtk.WidgetFactory4.flatpakref && flatpak run org.gtk.WidgetFactory4
- the images in the bottom left notebook can be dragged to (and from). Also: GTK 4.4.0 has that, too, if you can get that from anywhere.
Comment 7•3 years ago
|
||
That works, thanks.
Comment 8•3 years ago
|
||
Benjamin, latest nightly exports images in D&D (Bug 1730141) but we need more fixes to make sure it works reliably. But it seems to work with WidgetFactory4 somehow now.
Updated•3 years ago
|
Comment 9•3 years ago
|
||
i'm facing the same issue, i can't drag and drop anything.
organizing tabs, bookmarks, open file in current tab, upload file etc.
anything that involving drag and drop.
dragging web widgets also glitching ex. online diagram editor, phpmyadmin designer etc.
i'm on archlinux 5.10.74-1-lts
Comment 10•3 years ago
|
||
(In reply to bokunocode from comment #9)
i'm facing the same issue, i can't drag and drop anything.
organizing tabs, bookmarks, open file in current tab, upload file etc.
anything that involving drag and drop.
dragging web widgets also glitching ex. online diagram editor, phpmyadmin designer etc.
i'm on archlinux 5.10.74-1-lts
That's Bug 1736523.
Updated•3 years ago
|
Updated•3 years ago
|
Updated•3 years ago
|
Description
•