diff --git a/source/ubl-settings-kernel.c b/source/ubl-settings-kernel.c index 84fb451..9f5d189 100644 --- a/source/ubl-settings-kernel.c +++ b/source/ubl-settings-kernel.c @@ -540,22 +540,24 @@ gboolean on_command_execute_success(GtkWidget *,gint status,main_window *widgets dictionary *dict = NULL; for_dictionaries(dict,main_config.kernel_tabs){ if (!getuid()){ - gtk_widget_set_sensitive(((kernels_tab*)dict->data)->update_module_button,1); - gtk_widget_set_sensitive(((kernels_tab*)dict->data)->update_package_button,1); - gtk_widget_set_sensitive(((kernels_tab*)dict->data)->install_module_button,1); - gtk_widget_set_sensitive(((kernels_tab*)dict->data)->install_package_button,1); - gtk_widget_set_sensitive(((kernels_tab*)dict->data)->remove_module_button,1); - gtk_widget_set_sensitive(((kernels_tab*)dict->data)->remove_package_button,1); + kernels_tab *tab = (kernels_tab*)dict->data; + gtk_widget_set_sensitive(tab->update_module_button,!tab->module_updated); + gtk_widget_set_sensitive(tab->update_package_button,!tab->package_updated); + gtk_widget_set_sensitive(tab->install_module_button,1); + gtk_widget_set_sensitive(tab->install_package_button,1); + gtk_widget_set_sensitive(tab->remove_module_button,1); + gtk_widget_set_sensitive(tab->remove_package_button,1); } } for_dictionaries(dict,main_config.addition_tabs){ if (!getuid()){ - gtk_widget_set_sensitive(((kernels_tab*)dict->data)->update_module_button,1); - gtk_widget_set_sensitive(((kernels_tab*)dict->data)->update_package_button,1); - gtk_widget_set_sensitive(((kernels_tab*)dict->data)->install_module_button,1); - gtk_widget_set_sensitive(((kernels_tab*)dict->data)->install_package_button,1); - gtk_widget_set_sensitive(((kernels_tab*)dict->data)->remove_module_button,1); - gtk_widget_set_sensitive(((kernels_tab*)dict->data)->remove_package_button,1); + kernels_tab *tab = (kernels_tab*)dict->data; + gtk_widget_set_sensitive(tab->update_module_button,!tab->module_updated); + gtk_widget_set_sensitive(tab->update_package_button,!tab->package_updated); + gtk_widget_set_sensitive(tab->install_module_button,1); + gtk_widget_set_sensitive(tab->install_package_button,1); + gtk_widget_set_sensitive(tab->remove_module_button,1); + gtk_widget_set_sensitive(tab->remove_package_button,1); } } { diff --git a/ubl-settings-kernel-table-row.glade b/ubl-settings-kernel-table-row.glade index 6b7319d..7a48dd4 100644 --- a/ubl-settings-kernel-table-row.glade +++ b/ubl-settings-kernel-table-row.glade @@ -1,5 +1,5 @@ - + @@ -244,6 +244,7 @@ 5 + False True True Update module @@ -308,6 +309,7 @@ 5 + False True True Update package