File easytag-Fix-crash-when-loading-files.patch of Package easytag
From 53c9b955aee4aa4f41510e6fe6b78597257fa110 Mon Sep 17 00:00:00 2001
From: David King <amigadave@amigadave.com>
Date: Fri, 26 Feb 2016 17:27:05 +0000
Subject: Fix a crash when loading filenames from a file
Swap the arguments of the callbacks for the reload signals.
https://bugzilla.redhat.com/show_bug.cgi?id=1312163
---
data/load_files_dialog.ui | 2 +-
src/load_files_dialog.c | 12 ++++++------
2 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/data/load_files_dialog.ui b/data/load_files_dialog.ui
index f10f1aa..f8c7578 100644
--- a/data/load_files_dialog.ui
+++ b/data/load_files_dialog.ui
@@ -153,7 +153,7 @@
<property name="icon-name">view-refresh</property>
<property name="tooltip-text" translatable="yes">Reload</property>
<property name="visible">True</property>
- <signal name="clicked" handler="on_load_file_content_view_reload_clicked"/>
+ <signal name="clicked" handler="on_load_file_content_view_reload_clicked" swapped="yes"/>
</object>
</child>
</object>
diff --git a/src/load_files_dialog.c b/src/load_files_dialog.c
index 8686526..247692e 100644
--- a/src/load_files_dialog.c
+++ b/src/load_files_dialog.c
@@ -759,9 +759,9 @@ create_load_file_content_view_popup (EtLoadFilesDialog *self)
MenuItem = gtk_menu_item_new_with_label(_("Reload"));
gtk_menu_shell_append(GTK_MENU_SHELL(BrowserPopupMenu),MenuItem);
- g_signal_connect (MenuItem, "activate",
- G_CALLBACK (on_load_file_name_view_reload_clicked),
- self);
+ g_signal_connect_swapped (MenuItem, "activate",
+ G_CALLBACK (on_load_file_name_view_reload_clicked),
+ self);
gtk_widget_show_all(BrowserPopupMenu);
@@ -862,9 +862,9 @@ create_load_file_name_view_popup (EtLoadFilesDialog *self)
MenuItem = gtk_menu_item_new_with_label (_("Reload"));
gtk_menu_shell_append(GTK_MENU_SHELL(BrowserPopupMenu),MenuItem);
- g_signal_connect (MenuItem, "activate",
- G_CALLBACK (on_load_file_content_view_reload_clicked),
- self);
+ g_signal_connect_swapped (MenuItem, "activate",
+ G_CALLBACK (on_load_file_content_view_reload_clicked),
+ self);
gtk_widget_show_all(BrowserPopupMenu);
--
cgit v0.12
From 543b1f071dc82848e8819c68b19d4ed5d2395abc Mon Sep 17 00:00:00 2001
From: David King <amigadave@amigadave.com>
Date: Sun, 28 Feb 2016 08:46:16 +0000
Subject: Avoid another crash in the load filenames dialog
Make the reload action insensitive when no file is selected.
---
src/load_files_dialog.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/src/load_files_dialog.c b/src/load_files_dialog.c
index 247692e..8b70e16 100644
--- a/src/load_files_dialog.c
+++ b/src/load_files_dialog.c
@@ -39,6 +39,8 @@ typedef struct
GtkWidget *file_load_button;
GtkWidget *file_content_view;
GtkListStore *file_content_model;
+ GtkWidget *content_reload;
+ GtkWidget *content_reload_menuitem;
GtkWidget *load_file_content_menu;
GtkWidget *file_name_view;
GtkListStore *file_name_model;
@@ -204,6 +206,8 @@ set_load_button_sensitivity (EtLoadFilesDialog *self,
if (!file)
{
gtk_widget_set_sensitive (priv->file_load_button, FALSE);
+ gtk_widget_set_sensitive (priv->content_reload, FALSE);
+ gtk_widget_set_sensitive (priv->content_reload_menuitem, FALSE);
return;
}
@@ -214,10 +218,14 @@ set_load_button_sensitivity (EtLoadFilesDialog *self,
if (info && G_FILE_TYPE_REGULAR == g_file_info_get_file_type (info))
{
gtk_widget_set_sensitive (GTK_WIDGET (priv->file_load_button), TRUE);
+ gtk_widget_set_sensitive (priv->content_reload, TRUE);
+ gtk_widget_set_sensitive (priv->content_reload_menuitem, TRUE);
}
else
{
gtk_widget_set_sensitive (GTK_WIDGET (priv->file_load_button), FALSE);
+ gtk_widget_set_sensitive (priv->content_reload, FALSE);
+ gtk_widget_set_sensitive (priv->content_reload_menuitem, FALSE);
if (!info)
{
@@ -868,6 +876,7 @@ create_load_file_name_view_popup (EtLoadFilesDialog *self)
gtk_widget_show_all(BrowserPopupMenu);
+ priv->content_reload_menuitem = MenuItem;
priv->load_file_name_menu = BrowserPopupMenu;
}
@@ -1054,6 +1063,9 @@ et_load_files_dialog_class_init (EtLoadFilesDialogClass *klass)
file_content_view);
gtk_widget_class_bind_template_child_private (widget_class,
EtLoadFilesDialog,
+ content_reload);
+ gtk_widget_class_bind_template_child_private (widget_class,
+ EtLoadFilesDialog,
file_content_model);
gtk_widget_class_bind_template_child_private (widget_class,
EtLoadFilesDialog,
--
cgit v0.12