diff --git a/source/ubl-settings-services.c b/source/ubl-settings-services.c index 587d41a..1cc6ff6 100644 --- a/source/ubl-settings-services.c +++ b/source/ubl-settings-services.c @@ -571,6 +571,21 @@ void on_system_restart_clicked(GtkWidget *self, main_window *widgets){ } } +void on_sessions_selection_changed(GtkWidget *self, main_window *widgets){ + if (self){}; + GtkTreeIter iter; + GtkTreeModel *model; + if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->SessionMainTree)),&model,&iter)){ + gtk_widget_set_sensitive(widgets->SessionStopButton,1); + gtk_widget_set_sensitive(widgets->SessionBlockButton,1); + gtk_widget_set_sensitive(widgets->SessionStartButton,1); + } else { + gtk_widget_set_sensitive(widgets->SessionStopButton,0); + gtk_widget_set_sensitive(widgets->SessionBlockButton,0); + gtk_widget_set_sensitive(widgets->SessionStartButton,0); + } +} + void yon_sessions_update(main_window *widgets){ gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->SessionMainTree),NULL); gtk_list_store_clear(widgets->SessionsList); @@ -1715,6 +1730,7 @@ void yon_main_window_complete(main_window *widgets){ g_signal_connect(G_OBJECT(widgets->SessionStartButton),"clicked",G_CALLBACK(on_session_activate),widgets); g_signal_connect(G_OBJECT(widgets->SessionStopButton),"clicked",G_CALLBACK(on_session_end),widgets); g_signal_connect(G_OBJECT(widgets->SessionBlockButton),"clicked",G_CALLBACK(on_session_block),widgets); + g_signal_connect(G_OBJECT(widgets->SessionMainTree),"cursor-changed",G_CALLBACK(on_sessions_selection_changed),widgets); g_signal_connect(G_OBJECT(widgets->SystemServicesStatusMenuItem),"activate",G_CALLBACK(on_system_services_status),widgets); g_signal_connect(G_OBJECT(widgets->InstalledUnitsStatusMenuItem),"activate",G_CALLBACK(on_units_status),widgets); diff --git a/source/ubl-settings-services.h b/source/ubl-settings-services.h index 125b3f0..6f2887d 100644 --- a/source/ubl-settings-services.h +++ b/source/ubl-settings-services.h @@ -302,6 +302,8 @@ log_window *yon_log_window_new(); gboolean yon_filter(GtkTreeModel* model, GtkTreeIter *iter, main_window *widgets); void on_filter_changed(GtkWidget *self, main_window *widgets); +void on_sessions_selection_changed(GtkWidget *self, main_window *widgets); + void on_system_services_status(GtkWidget *self, main_window *widgets); void on_user_services_status(GtkWidget *self, main_window *widgets); diff --git a/ubl-settings-services.glade b/ubl-settings-services.glade index 5a8db02..5246171 100644 --- a/ubl-settings-services.glade +++ b/ubl-settings-services.glade @@ -1941,6 +1941,7 @@ True + False True True Activate session @@ -1958,6 +1959,7 @@ True + False True True Terminate session @@ -1975,6 +1977,7 @@ True + False True True Lock session