Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Drag'n'drop blocks GUI #515

Open
dirkf opened this issue Mar 15, 2024 · 5 comments
Open

Drag'n'drop blocks GUI #515

dirkf opened this issue Mar 15, 2024 · 5 comments

Comments

@dirkf
Copy link

dirkf commented Mar 15, 2024

Expected behaviour

Following steps below, GUI should not be blocked, but just show a "not allowed" cursor while the drag-drop target is invalid.

Better, it should also be possible to drag-drop any selection from Engrampa to any target that accepts drag-drop from a file manager.

Actual behaviour

Following the steps below, GUI shows a "drag copy" cursor when the invalid d'n'd target is hovered and a dialog appears You don't have the right permissions to extract archives in the folder "" but the normal cursor is never reactivated, despite the cursor responding to mouse movements, and the GUI remains blocked to mouse and keyboard actions. Releasing the dragging mouse button, mouse clicks, ESC, etc, have no effect.

Switching to a separate console session (c-a-F6), pkill engrampa, and switching back (c-a-F7) unblocks the GUI. Also, the dialog can be closed with <Alt+F4>, but that has no other effect. It's possible to switch to an previously opened Xfce Terminal running bash with <Alt+Tab>: in the Terminal and , and the plain arrow keys, are blocked but and <Ctrl+j> can be used to invoke the pkill command.

Probably any entry in the PCManFM Places list behaves similarly. The Places list in Thunar doesn't. Also probably, the underlying issue could be a defect in PCManFM, but it shouldn't be possible for that to block the GUI. Eg, drag-dropping an item from Thunar to the PCManFM Places list doesn't have the same result (but/and that can be a valid action).

Steps to reproduce the behaviour

Installed:
MX Linux 23.2, kernel 6.1.0-18-686-pae, xfce4 4.18, xfwm4 4.18.0-1, Engrampa 1.26.0-1+deb12u2 (hurrah, no CSD!), pcmanfm 1.3.2.1

  1. Plug in FAT32 USB stick.
  2. Open PCManFM and select some folder on the local disk containing an archive file
  3. Show the Places sidebar in pcmanfm: the USB device should be shown.
  4. Open the archive in Engrampa
  5. Select a file in the archive from the file list pane.
  6. Drag the file towards the pcmanfm window: a file details strip becomes attached to the "drag" cursor.
  7. Move the drag cursor over the USB filesystem in the Places list
  8. The "drag" cursor (for me it was a black one-fingered hand, but would depend on theming) instantly gets a "drag copy" + and a dialog (as above) opens.
  9. The "drag_copy" cursor does not change as you move the cursor away from the invalid target, nor if you abandon the d'n'd by releasing the button.
  10. The dialog can't be closed with its Close button although <Alt+F4> works.
  11. Despite any of these, the "drag copy" cursor remains and the GUI remains blocked to mouse and keyboard actions (until the engrampa process is killed by other means).

MATE general version

Not used in MATE

Package version

1.26.0-1+deb12u2

Linux Distribution

MX Linux 23.2

Link to bugreport of your Distribution (requirement)

https://bugs.mxlinux.org/show_bug.cgi?id=783

@dirkf dirkf changed the title Drag'n'drop blocks GUI in XFCE Drag'n'drop blocks GUI Mar 17, 2024
@dirkf
Copy link
Author

dirkf commented Mar 17, 2024

Related: #183

From linked distro issue:

... this is a not a PCManFM issue even if the PCManFM code might be wrong [but see https://github.com/lxde/libfm/issues/45#issuecomment-1304250545]. Regardless of the drop target, the GUI code should not hang. The cursor is captured for the drag-drop but never released, presumably because the drag-drop handler has crashed without releasing it. There is a timeout and/or exception handler missing somewhere. ...

I believe that this is an issue with either GTK or the way applications, including engrampa, xarchiver and Firefox, are using it.

@zhuyaliang
Copy link
Member

@dirkf Please test if the problem is resolved

@dirkf
Copy link
Author

dirkf commented Apr 19, 2024

If you have a Debian x86 build that matches this dependency output for 1.26.0-1+deb12u2, I can test it as a drop-in.

ldd $(which engrampa)
$ engrampa --version
Engrampa Archive Manager 1.26.0
$ ldd $(which engrampa)
	linux-gate.so.1 (0xb7f4b000)
	libSM.so.6 => /lib/i386-linux-gnu/libSM.so.6 (0xb7e98000)
	libICE.so.6 => /lib/i386-linux-gnu/libICE.so.6 (0xb7e7b000)
	libgtk-3.so.0 => /lib/i386-linux-gnu/libgtk-3.so.0 (0xb7400000)
	libgdk-3.so.0 => /lib/i386-linux-gnu/libgdk-3.so.0 (0xb7d5d000)
	libpango-1.0.so.0 => /lib/i386-linux-gnu/libpango-1.0.so.0 (0xb7390000)
	libcairo.so.2 => /lib/i386-linux-gnu/libcairo.so.2 (0xb723f000)
	libgdk_pixbuf-2.0.so.0 => /lib/i386-linux-gnu/libgdk_pixbuf-2.0.so.0 (0xb720c000)
	libjson-glib-1.0.so.0 => /lib/i386-linux-gnu/libjson-glib-1.0.so.0 (0xb71db000)
	libgio-2.0.so.0 => /lib/i386-linux-gnu/libgio-2.0.so.0 (0xb6e00000)
	libgobject-2.0.so.0 => /lib/i386-linux-gnu/libgobject-2.0.so.0 (0xb7175000)
	libglib-2.0.so.0 => /lib/i386-linux-gnu/libglib-2.0.so.0 (0xb6caa000)
	libmagic.so.1 => /lib/i386-linux-gnu/libmagic.so.1 (0xb7145000)
	libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xb7040000)
	libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb6a00000)
	libuuid.so.1 => /lib/i386-linux-gnu/libuuid.so.1 (0xb7d51000)
	libbsd.so.0 => /lib/i386-linux-gnu/libbsd.so.0 (0xb6c93000)
	libgmodule-2.0.so.0 => /lib/i386-linux-gnu/libgmodule-2.0.so.0 (0xb7d4b000)
	libpangocairo-1.0.so.0 => /lib/i386-linux-gnu/libpangocairo-1.0.so.0 (0xb7030000)
	libharfbuzz.so.0 => /lib/i386-linux-gnu/libharfbuzz.so.0 (0xb68de000)
	libpangoft2-1.0.so.0 => /lib/i386-linux-gnu/libpangoft2-1.0.so.0 (0xb6c78000)
	libfontconfig.so.1 => /lib/i386-linux-gnu/libfontconfig.so.1 (0xb688b000)
	libfribidi.so.0 => /lib/i386-linux-gnu/libfribidi.so.0 (0xb6c5c000)
	libcairo-gobject.so.2 => /lib/i386-linux-gnu/libcairo-gobject.so.2 (0xb6c53000)
	libatk-1.0.so.0 => /lib/i386-linux-gnu/libatk-1.0.so.0 (0xb6c2a000)
	libepoxy.so.0 => /lib/i386-linux-gnu/libepoxy.so.0 (0xb677a000)
	libXi.so.6 => /lib/i386-linux-gnu/libXi.so.6 (0xb6765000)
	libX11.so.6 => /lib/i386-linux-gnu/libX11.so.6 (0xb6613000)
	libatk-bridge-2.0.so.0 => /lib/i386-linux-gnu/libatk-bridge-2.0.so.0 (0xb65d4000)
	libXfixes.so.3 => /lib/i386-linux-gnu/libXfixes.so.3 (0xb65cc000)
	libxkbcommon.so.0 => /lib/i386-linux-gnu/libxkbcommon.so.0 (0xb6582000)
	libwayland-client.so.0 => /lib/i386-linux-gnu/libwayland-client.so.0 (0xb6573000)
	libwayland-cursor.so.0 => /lib/i386-linux-gnu/libwayland-cursor.so.0 (0xb656a000)
	libwayland-egl.so.1 => /lib/i386-linux-gnu/libwayland-egl.so.1 (0xb6565000)
	libXext.so.6 => /lib/i386-linux-gnu/libXext.so.6 (0xb654f000)
	libXcursor.so.1 => /lib/i386-linux-gnu/libXcursor.so.1 (0xb6542000)
	libXdamage.so.1 => /lib/i386-linux-gnu/libXdamage.so.1 (0xb653d000)
	libXcomposite.so.1 => /lib/i386-linux-gnu/libXcomposite.so.1 (0xb6538000)
	libXrandr.so.2 => /lib/i386-linux-gnu/libXrandr.so.2 (0xb6529000)
	libXinerama.so.1 => /lib/i386-linux-gnu/libXinerama.so.1 (0xb6524000)
	libthai.so.0 => /lib/i386-linux-gnu/libthai.so.0 (0xb6517000)
	libpixman-1.so.0 => /lib/i386-linux-gnu/libpixman-1.so.0 (0xb6466000)
	libfreetype.so.6 => /lib/i386-linux-gnu/libfreetype.so.6 (0xb6396000)
	libpng16.so.16 => /lib/i386-linux-gnu/libpng16.so.16 (0xb6359000)
	libxcb-shm.so.0 => /lib/i386-linux-gnu/libxcb-shm.so.0 (0xb6354000)
	libxcb.so.1 => /lib/i386-linux-gnu/libxcb.so.1 (0xb6326000)
	libxcb-render.so.0 => /lib/i386-linux-gnu/libxcb-render.so.0 (0xb6317000)
	libXrender.so.1 => /lib/i386-linux-gnu/libXrender.so.1 (0xb6309000)
	libz.so.1 => /lib/i386-linux-gnu/libz.so.1 (0xb62ec000)
	libjpeg.so.62 => /lib/i386-linux-gnu/libjpeg.so.62 (0xb625c000)
	libmount.so.1 => /lib/i386-linux-gnu/libmount.so.1 (0xb61e9000)
	libselinux.so.1 => /lib/i386-linux-gnu/libselinux.so.1 (0xb61b6000)
	libffi.so.8 => /lib/i386-linux-gnu/libffi.so.8 (0xb61ac000)
	libpcre2-8.so.0 => /lib/i386-linux-gnu/libpcre2-8.so.0 (0xb610d000)
	liblzma.so.5 => /lib/i386-linux-gnu/liblzma.so.5 (0xb60d7000)
	libbz2.so.1.0 => /lib/i386-linux-gnu/libbz2.so.1.0 (0xb60c5000)
	/lib/ld-linux.so.2 (0xb7f4d000)
	libmd.so.0 => /lib/i386-linux-gnu/libmd.so.0 (0xb60b6000)
	libgraphite2.so.3 => /lib/i386-linux-gnu/libgraphite2.so.3 (0xb6089000)
	libexpat.so.1 => /lib/i386-linux-gnu/libexpat.so.1 (0xb605d000)
	libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xb6056000)
	libatspi.so.0 => /lib/i386-linux-gnu/libatspi.so.0 (0xb6019000)
	libdbus-1.so.3 => /lib/i386-linux-gnu/libdbus-1.so.3 (0xb5fb8000)
	libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xb5fb3000)
	libdatrie.so.1 => /lib/i386-linux-gnu/libdatrie.so.1 (0xb5fa8000)
	libbrotlidec.so.1 => /lib/i386-linux-gnu/libbrotlidec.so.1 (0xb5f9a000)
	libXau.so.6 => /lib/i386-linux-gnu/libXau.so.6 (0xb5f95000)
	libXdmcp.so.6 => /lib/i386-linux-gnu/libXdmcp.so.6 (0xb5f8e000)
	libblkid.so.1 => /lib/i386-linux-gnu/libblkid.so.1 (0xb5f2c000)
	libsystemd.so.0 => /lib/i386-linux-gnu/libsystemd.so.0 (0xb5e55000)
	libbrotlicommon.so.1 => /lib/i386-linux-gnu/libbrotlicommon.so.1 (0xb5e32000)
	libcap.so.2 => /lib/i386-linux-gnu/libcap.so.2 (0xb5e25000)
	libgcrypt.so.20 => /lib/i386-linux-gnu/libgcrypt.so.20 (0xb5d1a000)
	libzstd.so.1 => /lib/i386-linux-gnu/libzstd.so.1 (0xb5c62000)
	liblz4.so.1 => /lib/i386-linux-gnu/liblz4.so.1 (0xb5c3c000)
	libgpg-error.so.0 => /lib/i386-linux-gnu/libgpg-error.so.0 (0xb5c12000)
$

@zhuyaliang
Copy link
Member

@dirkf Sorry, I don't use Debian. Can you manually compile and test it?

@dirkf
Copy link
Author

dirkf commented Apr 22, 2024

Unfortunately, the machine with this set-up only has enough build functionality to update kernel drivers. Maybe you can propose the patch to the Debian maintainers?

Also, perhaps the same patch applies to File Roller and its other forks?

Current Debian versions are

  • bookworm (stable) 1.26.0-1+deb12u2
  • sid (unstable) 1.26.2-4

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants