Initial scrolling changes

pull/20/head
parent 78f8a1ed52
commit e71d4c7eae

@ -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");

@ -42,6 +42,7 @@ typedef struct {
GtkWidget *InfoIcon;
GtkWidget *InfoTerminal;
GtkWidget *TerminalTemplateLabel;
GtkAdjustment *adjustment;
} main_window;
@ -49,3 +50,6 @@ typedef struct {
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);
void terminal_integrated_start(GtkWidget *terminal,GtkAdjustment *, char* command);
gboolean yon_adjustment_set(GtkAdjustment *adj);
void on_child_exited(GtkWidget *, gint, GtkAdjustment *adj);

@ -51,7 +51,6 @@
<property name="vadjustment">adjustment1</property>
<property name="vscroll-policy">natural</property>
<property name="encoding">UTF-8</property>
<property name="scroll-on-keystroke">True</property>
<property name="scroll-on-output">False</property>
<style>
<class name="terminal"/>

Loading…
Cancel
Save