Bug#974666: gnome-sound-recorder: The export file dialog disappears suddendly after a few seconds.
raster
rastersoft at gmail.com
Fri Nov 13 14:11:42 GMT 2020
Package: gnome-sound-recorder
Version: 3.38.0-1
Severity: grave
Tags: patch
Justification: causes non-serious data loss
X-Debbugs-Cc: rastersoft at gmail.com
Dear Maintainer,
After doing a recording, pressing the "export" button shows, as expected, a
file dialog to choose where to export the file. The problem is that the
dialog disappears sudendly after some seconds (a variable number: sometimes
as soon as three-four seconds, others between ten and twelve seconds). To
trigger this bug, just press the "export" button and wait.
This is critical because if the user want to navigate to a folder and uses too
much time, the dialog closes before being able to do the operation.
This seems a problem with the garbage collector. I attach a patch that fixes
it.
-- System Information:
Debian Release: bullseye/sid
APT prefers unstable-debug
APT policy: (500, 'unstable-debug'), (500, 'unstable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386
Kernel: Linux 5.9.0-2-amd64 (SMP w/4 CPU threads)
Kernel taint flags: TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE
Locale: LANG=es_ES.UTF-8, LC_CTYPE=es_ES.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
Versions of packages gnome-sound-recorder depends on:
ii dconf-gsettings-backend [gsettings-backend] 0.38.0-1
ii gir1.2-gdkpixbuf-2.0 2.40.0+dfsg-5
ii gir1.2-glib-2.0 1.66.1-1
ii gir1.2-gst-plugins-bad-1.0 1.18.1-1
ii gir1.2-gst-plugins-base-1.0 1.18.1-1
ii gir1.2-gstreamer-1.0 1.18.1-1
ii gir1.2-gtk-3.0 3.24.23-2
ii gir1.2-handy-1 1.0.1-1
ii gir1.2-pango-1.0 1.46.2-3
ii gjs 1.66.1-1
ii gstreamer1.0-plugins-base 1.18.1-1
ii gstreamer1.0-plugins-good 1.18.1-1
ii gstreamer1.0-pulseaudio 1.18.1-1
gnome-sound-recorder recommends no packages.
gnome-sound-recorder suggests no packages.
-- no debconf information
-------------- next part --------------
diff --git a/src/row.js b/src/row.js
index 154c0ef..743de63 100644
--- a/src/row.js
+++ b/src/row.js
@@ -68,16 +68,17 @@ var Row = GObject.registerClass({
let exportAction = new Gio.SimpleAction({ name: 'export' });
exportAction.connect('activate', () => {
const window = Gio.Application.get_default().get_active_window();
- const dialog = Gtk.FileChooserNative.new(_('Export Recording'), window, Gtk.FileChooserAction.SAVE, _('_Export'), _('_Cancel'));
- dialog.set_current_name(`${this._recording.name}.${this._recording.extension}`);
- dialog.connect('response', (_dialog, response) => {
+ this.exportDialog = Gtk.FileChooserNative.new(_('Export Recording'), window, Gtk.FileChooserAction.SAVE, _('_Export'), _('_Cancel'));
+ this.exportDialog.set_current_name(`${this._recording.name}.${this._recording.extension}`);
+ this.exportDialog.connect('response', (_dialog, response) => {
if (response === Gtk.ResponseType.ACCEPT) {
- const dest = dialog.get_file();
+ const dest = this.exportDialog.get_file();
this._recording.save(dest);
}
- dialog.destroy();
+ this.exportDialog.destroy();
+ this.exportDialog = null;
});
- dialog.show();
+ this.exportDialog.show();
});
this.actionGroup.add_action(exportAction);
More information about the pkg-gnome-maintainers
mailing list