diff options
| -rw-r--r-- | svte.c | 48 | 
1 files changed, 26 insertions, 22 deletions
| @@ -133,11 +133,13 @@ gboolean event_key(GtkWidget *widget, GdkEventKey *event) {    return FALSE;  } +  gboolean event_button(GtkWidget *widget, GdkEventButton *button_event, gpointer user_data) {  /* todo, needs to handle: regex copy paste, selection copy and paste, */  } +  static void tab_close() {    gint page = gtk_notebook_get_current_page(GTK_NOTEBOOK(svte.notebook));    struct term *t; @@ -156,6 +158,7 @@ static void tab_close() {    }  } +  /* Retrieve the cwd of the specified term page.   * Original function was from terminal-screen.c of gnome-terminal, copyright (C) 2001 Havoc Pennington   * Adapted by Hong Jen Yee, non-linux shit removed by David Gómez */ @@ -184,21 +187,23 @@ static char* tab_get_cwd(struct term* t)  static void tab_switch(gboolean b) { - -gint(current) = gtk_notebook_get_current_page(GTK_NOTEBOOK(svte.notebook)); - -if(b) { -if (current == gtk_notebook_get_n_pages(GTK_NOTEBOOK(svte.notebook)) -1 ) { current = 0; } -else { current	= current + 1;} -} else{ -if (current == 0) { -current = gtk_notebook_get_n_pages(GTK_NOTEBOOK(svte.notebook)) - 1; } -else {current = current -1; } +  gint(current) = gtk_notebook_get_current_page(GTK_NOTEBOOK(svte.notebook)); +  if(b) { +    if (current == gtk_notebook_get_n_pages(GTK_NOTEBOOK(svte.notebook)) -1 ) { +      current = 0; +    } else { +      current = current + 1; +    } +  } else { +    if (current == 0) { +      current = gtk_notebook_get_n_pages(GTK_NOTEBOOK(svte.notebook)) - 1; +    } else { +      current = current -1; +    } +  } +  gtk_notebook_set_current_page(GTK_NOTEBOOK(svte.notebook), current);  } -gtk_notebook_set_current_page(GTK_NOTEBOOK(svte.notebook), current); - -}  static void tab_geometry_hints(term *t) {    // I dont need to call this every time, since the char width only changes @@ -260,17 +265,16 @@ static void tab_new() {    gtk_notebook_set_tab_reorderable(GTK_NOTEBOOK(svte.notebook), t->vte, TRUE);    if (index == 0) { -	    gtk_notebook_set_show_tabs(GTK_NOTEBOOK(svte.notebook), FALSE); -	    t->pid = vte_terminal_fork_command(VTE_TERMINAL(t->vte), NULL, NULL, NULL, NULL, -                            FALSE, FALSE, FALSE);  +    gtk_notebook_set_show_tabs(GTK_NOTEBOOK(svte.notebook), FALSE); +    t->pid = vte_terminal_fork_command(VTE_TERMINAL(t->vte), NULL, NULL, NULL, NULL, +                                       FALSE, FALSE, FALSE);       tab_geometry_hints(t); -        } else { -		t->pid = vte_terminal_fork_command(VTE_TERMINAL(t->vte), NULL, NULL, NULL, tab_get_cwd(previous), -                            FALSE, FALSE, FALSE); -        gtk_notebook_set_show_tabs(GTK_NOTEBOOK(svte.notebook), TRUE); -	  } -	    +    t->pid = vte_terminal_fork_command(VTE_TERMINAL(t->vte), NULL, NULL, NULL, tab_get_cwd(previous), +                                       FALSE, FALSE, FALSE); +    gtk_notebook_set_show_tabs(GTK_NOTEBOOK(svte.notebook), TRUE); +  } +       g_object_set_qdata_full(G_OBJECT(gtk_notebook_get_nth_page(        (GtkNotebook*)svte.notebook, index)), term_data_id, t, NULL);    g_signal_connect(t->vte, "child-exited", G_CALLBACK(tab_close), NULL); | 
