- commit
- 6717be65628503fda89184890161c5f1695f04ea
- parent
- e8ba7e087c366a519fc58245dba81b02195e8a7a
- Author
- Tobias Bengfort <tobias.bengfort@posteo.de>
- Date
- 2020-09-18 18:12
open new tab in same directory
Diffstat
| M | xiterm.c | 27 | ++++++++++++++++++++++++--- |
1 files changed, 24 insertions, 3 deletions
diff --git a/xiterm.c b/xiterm.c
@@ -89,10 +89,27 @@ VteTerminal *get_current_term(void) {
89 89 }
90 90 }
91 91
-1 92 const char* get_cwd(VteTerminal *term) {
-1 93 // only works if /etc/profile.d/vte-2.91.sh was sourced in .bashrc
-1 94 const char *uri;
-1 95
-1 96 if (term != NULL) {
-1 97 uri = vte_terminal_get_current_directory_uri(term);
-1 98 if (uri != NULL) {
-1 99 return g_filename_from_uri(uri, NULL, NULL);
-1 100 }
-1 101 }
-1 102
-1 103 return NULL;
-1 104 }
-1 105
92 106 void setup_terminal(VteTerminal *term) {
93 107 int tag;
-1 108 const char *cwd;
94 109
95 -1 vte_terminal_spawn_async(term, VTE_PTY_DEFAULT, NULL, cmd, NULL, G_SPAWN_DEFAULT, NULL, NULL, NULL, -1, NULL, NULL, NULL);
-1 110 cwd = get_cwd(get_current_term());
-1 111
-1 112 vte_terminal_spawn_async(term, VTE_PTY_DEFAULT, cwd, cmd, NULL, G_SPAWN_DEFAULT, NULL, NULL, NULL, -1, NULL, NULL, NULL);
96 113 vte_terminal_set_cursor_blink_mode(term, VTE_CURSOR_BLINK_OFF);
97 114 tag = vte_terminal_match_add_regex(term, url_regex, 0);
98 115 vte_terminal_match_set_cursor_name(term, tag, "pointer");
@@ -117,10 +134,14 @@ void add_tab(void) {
117 134
118 135 update_show_tabs();
119 136 gtk_widget_show(page);
120 -1 gtk_notebook_set_current_page(notebook, page_num);
121 -1 gtk_widget_grab_focus(page);
122 137
-1 138 // needs to execute after gtk_widget_show() (for proper dimensions)
-1 139 // and before gtk_notebook_get_current_page() (so we can access the
-1 140 // previous term to get cwd)
123 141 setup_terminal(VTE_TERMINAL(page));
-1 142
-1 143 gtk_notebook_set_current_page(notebook, page_num);
-1 144 gtk_widget_grab_focus(page);
124 145 }
125 146
126 147 gboolean on_key(GtkWidget *widget, GdkEventKey *event, gpointer user_data) {