diff --git a/source/ubl-settings-info.c b/source/ubl-settings-info.c
index 5564db5..907fc49 100644
--- a/source/ubl-settings-info.c
+++ b/source/ubl-settings-info.c
@@ -22,6 +22,29 @@ void on_theme_changed(GSettings *, char *, main_window *widgets){
yon_terminal_style_update(NULL, widgets);
}
+gboolean yon_adjustment_set(GtkAdjustment *adj){
+
+ gtk_adjustment_set_value(adj,0);
+ return G_SOURCE_CONTINUE;
+
+}
+
+void on_child_exited(GtkWidget *, gint, GtkAdjustment *adj){
+ g_idle_remove_by_data(adj);
+}
+
+void terminal_integrated_start(GtkWidget *terminal,GtkAdjustment *adj, char* command){
+ gchar *envv[] = { NULL };
+ config_str parsed=NULL;
+ int size=0;
+ g_shell_parse_argv(command, &size,&parsed, NULL);
+ vte_terminal_spawn_async(VTE_TERMINAL(terminal),VTE_PTY_NO_HELPER,"/bin",parsed,envv,G_SPAWN_SEARCH_PATH,NULL,NULL,NULL,20,NULL,NULL,NULL);
+ vte_terminal_set_size(VTE_TERMINAL(terminal),10,15);
+ vte_terminal_set_scrollback_lines(VTE_TERMINAL(terminal), -1);
+ gtk_widget_show_all(terminal);
+ g_idle_add((GSourceFunc)yon_adjustment_set,adj);
+ }
+
/**yon_main_window_complete(main_window *widgets)
* [EN]
*
@@ -37,9 +60,11 @@ void yon_main_window_complete(main_window *widgets){
widgets->InfoIcon = yon_gtk_builder_get_widget(builder,"InfoIcon");
widgets->InfoTerminal = yon_gtk_builder_get_widget(builder,"InfoTerminal");
widgets->TerminalTemplateLabel = yon_gtk_builder_get_widget(builder,"TerminalTemplateLabel");
+ widgets->adjustment = GTK_ADJUSTMENT(gtk_builder_get_object(builder,"adjustment1"));
}
{
- yon_terminal_integrated_start(widgets->InfoTerminal,main_command);
+ g_signal_connect(G_OBJECT(widgets->InfoTerminal),"eof",G_CALLBACK(on_child_exited),widgets->adjustment);
+ terminal_integrated_start(widgets->InfoTerminal,widgets->adjustment,main_command);
yon_terminal_style_update(NULL, widgets);
GSettings *settings = g_settings_new("org.gnome.desktop.interface");
diff --git a/source/ubl-settings-info.h b/source/ubl-settings-info.h
index d7f5d2f..d450061 100644
--- a/source/ubl-settings-info.h
+++ b/source/ubl-settings-info.h
@@ -42,10 +42,14 @@ typedef struct {
GtkWidget *InfoIcon;
GtkWidget *InfoTerminal;
GtkWidget *TerminalTemplateLabel;
+ GtkAdjustment *adjustment;
} main_window;
void yon_main_window_complete(main_window *widgets);
void on_theme_changed(GSettings *, char *, main_window *widgets);
-void yon_terminal_style_update(VteTerminal *, main_window *widgets);
\ No newline at end of file
+void yon_terminal_style_update(VteTerminal *, main_window *widgets);
+void terminal_integrated_start(GtkWidget *terminal,GtkAdjustment *, char* command);
+gboolean yon_adjustment_set(GtkAdjustment *adj);
+void on_child_exited(GtkWidget *, gint, GtkAdjustment *adj);
\ No newline at end of file
diff --git a/ubl-settings-info.glade b/ubl-settings-info.glade
index cf0f801..a239c05 100644
--- a/ubl-settings-info.glade
+++ b/ubl-settings-info.glade
@@ -51,7 +51,6 @@
adjustment1
natural
UTF-8
- True
False