talons

Fork of Claws Mail https://www.claws-mail
Log | Files | Refs | README | LICENSE

commit 87ab2b6cf05444a26509543bc7cfa52d842539be
parent d6ba81337a6217737996bb0e6faf46b47ccc2722
Author: Michael Rasmussen <mir@datanom.net>
Date:   Thu,  5 Feb 2015 01:21:31 +0100

Fix bug #3380. Initialize widget before callback handler for 'clicked'

Diffstat:
Msrc/plugins/clamd/clamav_plugin_gtk.c | 26++++++++++++++------------
1 file changed, 14 insertions(+), 12 deletions(-)

diff --git a/src/plugins/clamd/clamav_plugin_gtk.c b/src/plugins/clamd/clamav_plugin_gtk.c @@ -189,13 +189,15 @@ static void setting_type_cb(GtkWidget *widget, gpointer data) { } } c->ConfigType = AUTOMATIC; - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(page->config_type), TRUE); + if (page->config_type) + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(page->config_type), TRUE); } else { /* Manual configuration */ debug_print("Setting clamd to manual configuration\n"); c->ConfigType = MANUAL; - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(page->config_type), FALSE); + if (page->config_type) + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(page->config_type), FALSE); } clamav_show_config(c); if (tmp_conf) @@ -403,15 +405,6 @@ static void clamav_create_widget_func(PrefsPage * _page, GtkWindow *window, gpoi SET_TOGGLE_SENSITIVITY (enable_clamav, config_port); - g_signal_connect(G_OBJECT(save_folder_select), "clicked", - G_CALLBACK(foldersel_cb), page); - g_signal_connect(G_OBJECT(config_folder_select), "clicked", - G_CALLBACK(clamd_folder_cb), page); - g_signal_connect(G_OBJECT(permission_select), "clicked", - G_CALLBACK(folder_permission_cb), page); - g_signal_connect(G_OBJECT(setting_type), "clicked", - G_CALLBACK(setting_type_cb), page); - config = clamav_get_config(); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(enable_clamav), config->clamav_enable); @@ -420,6 +413,15 @@ static void clamav_create_widget_func(PrefsPage * _page, GtkWindow *window, gpoi gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(recv_infected), config->clamav_recv_infected); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(setting_type), config->clamd_config_type); + g_signal_connect(G_OBJECT(save_folder_select), "clicked", + G_CALLBACK(foldersel_cb), page); + g_signal_connect(G_OBJECT(config_folder_select), "clicked", + G_CALLBACK(clamd_folder_cb), page); + g_signal_connect(G_OBJECT(permission_select), "clicked", + G_CALLBACK(folder_permission_cb), page); + g_signal_connect(G_OBJECT(setting_type), "clicked", + G_CALLBACK(setting_type_cb), page); + clamd_config = clamd_get_config(); if (config->clamav_save_folder != NULL) @@ -460,7 +462,7 @@ static void clamav_create_widget_func(PrefsPage * _page, GtkWindow *window, gpoi debug_print("Showing manual configuration and hiding automatic configuration\n"); clamav_show_config(c); } - } + } } /* else { gtk_entry_set_text(GTK_ENTRY(config_folder), config->clamd_config_folder);