diff --git a/source/ubl-settings-video-driver.c b/source/ubl-settings-video-driver.c index fc28a53..9eeaab0 100644 --- a/source/ubl-settings-video-driver.c +++ b/source/ubl-settings-video-driver.c @@ -21,6 +21,16 @@ void on_devices_info_clicked(GtkWidget *, driver_struct* driver){ gtk_widget_show(MainWindow); } +void yon_install_buttons_set_sensitive(main_window *widgets,int state){ + GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->DriversList)); + for (GList *iter = list;iter;iter=iter->next){ + driver_struct *driver = g_object_get_data(G_OBJECT(iter->data),"driver_struct"); + gtk_widget_set_sensitive(driver->ModuleInstalledCheck,state); + gtk_widget_set_sensitive(driver->PackageInstalledCheck,state); + } + g_list_free(list); +} + void yon_driver_struct_update(main_window *widgets,driver_struct *driver){ driver->module_installed = yon_packages_check_installed(driver->module); driver->package_installed = yon_packages_check_installed(driver->package); diff --git a/source/ubl-settings-video-install.c b/source/ubl-settings-video-install.c index 2cd467b..6905c90 100644 --- a/source/ubl-settings-video-install.c +++ b/source/ubl-settings-video-install.c @@ -68,6 +68,7 @@ void on_install_activate(GtkWidget *self, main_window *widgets){ vte_terminal_set_input_enabled(VTE_TERMINAL(widgets->InstallTerminal),1); vte_terminal_reset(VTE_TERMINAL(widgets->InstallTerminal),0,1); g_signal_connect_after(G_OBJECT(widgets->InstallTerminal),"child-exited",G_CALLBACK(on_install_check),driver); + yon_install_buttons_set_sensitive(widgets,0); yon_terminal_integrated_start(widgets->InstallTerminal,command); // g_signal_connect(G_OBJECT(widgets->InstallTerminal),"contents-changed",G_CALLBACK(on_terminal_check_progress),widgets); g_timeout_add(500,(GSourceFunc)on_terminal_check_progress,widgets); diff --git a/source/ubl-settings-video.c b/source/ubl-settings-video.c index 2130aa0..e2c2fa5 100644 --- a/source/ubl-settings-video.c +++ b/source/ubl-settings-video.c @@ -15,6 +15,7 @@ gtk_revealer_set_reveal_child(GTK_REVEALER(widgets->TerminalMoreRevieler),active gboolean on_command_execute_success(GtkWidget *self,gint status,main_window *widgets){ + yon_install_buttons_set_sensitive(widgets,1); vte_terminal_set_input_enabled(VTE_TERMINAL(self),0); g_mutex_lock(&main_config.progress_mutex); main_config.progress_active=0; @@ -31,14 +32,13 @@ gboolean on_command_execute_success(GtkWidget *self,gint status,main_window *wid return G_SOURCE_REMOVE; } -// gboolean on_terminal_check_progress(GtkWidget *,main_window *widgets){ gboolean on_terminal_check_progress(main_window *widgets){ - gtk_progress_bar_pulse(GTK_PROGRESS_BAR(widgets->TerminalInfoLabel)); g_mutex_lock(&main_config.progress_mutex); if (!main_config.progress_active){ g_mutex_unlock(&main_config.progress_mutex); return G_SOURCE_REMOVE; } + gtk_progress_bar_pulse(GTK_PROGRESS_BAR(widgets->TerminalInfoLabel)); g_mutex_unlock(&main_config.progress_mutex); return G_SOURCE_CONTINUE; } diff --git a/source/ubl-settings-video.h b/source/ubl-settings-video.h index 18a69b8..fe53d3d 100644 --- a/source/ubl-settings-video.h +++ b/source/ubl-settings-video.h @@ -427,5 +427,6 @@ void on_driver_module_info(GtkWidget *, main_window *widgets); void on_devices_button_clicked(GtkWidget *, main_window *widgets); int check_rmb_menu(void *data); void on_install_check(GtkWidget *self,gint status,driver_struct *driver); +void yon_install_buttons_set_sensitive(main_window *widgets,int state); #endif \ No newline at end of file