From 8d71f04b580d8f5b090935baef4c0ea195336f02 Mon Sep 17 00:00:00 2001 From: Simon Gomizelj Date: Thu, 31 May 2012 17:16:01 -0400 Subject: [PATCH 1/3] Call g_getenv only one at startup. --- termite.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/termite.c b/termite.c index 93904b8..00e63f5 100644 --- a/termite.c +++ b/termite.c @@ -29,6 +29,8 @@ typedef struct search_panel_info { enum overlay_mode mode; } search_panel_info; +static const gchar *browser_cmd[3] = { NULL }; + static gboolean add_to_list_store(char *key, __attribute__((unused)) void *value, GtkListStore *store) { @@ -199,8 +201,8 @@ static char *check_match(VteTerminal *vte, int event_x, int event_y) { static gboolean button_press_cb(VteTerminal *vte, GdkEventButton *event) { char *match = check_match(vte, (int)event->x, (int)event->y); if (event->button == 1 && event->type == GDK_BUTTON_PRESS && match != NULL) { - char *argv[] = URL_COMMAND(match); - g_spawn_async(NULL, argv, NULL, (GSpawnFlags)0, NULL, NULL, NULL, NULL); + browser_cmd[1] = match; + g_spawn_async(NULL, (gchar **)browser_cmd, NULL, G_SPAWN_SEARCH_PATH, NULL, NULL, NULL, NULL); g_free(match); return TRUE; } @@ -414,6 +416,9 @@ int main(int argc, char **argv) { command_argv = default_argv; } + browser_cmd[0] = g_getenv("BROWSER"); + if (!browser_cmd[0]) browser_cmd[0] = default_browser; + VtePty *pty = vte_terminal_pty_new(VTE_TERMINAL(vte), VTE_PTY_DEFAULT, &error); if (!pty) { From e365aa19dbdd5d565b80ac4c4165f9d0f39699a5 Mon Sep 17 00:00:00 2001 From: Simon Gomizelj Date: Thu, 7 Jun 2012 19:31:07 -0400 Subject: [PATCH 2/3] Add a browser configuration setting. Add "browser" to termite.cfg to hardcode the URL to launch links with. If its not set, query BROWSER environmental variable. --- termite.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/termite.c b/termite.c index 00e63f5..59d28cf 100644 --- a/termite.c +++ b/termite.c @@ -290,6 +290,14 @@ static void load_config(GtkWindow *window, VteTerminal *vte, if (get_config_boolean(config, "options", "clickable_url", &cfgbool)) *clickable_url = cfgbool; + if (get_config_string(config, "options", "browser", &cfgstr)) { + browser_cmd[0] = cfgstr; + } else { + browser_cmd[0] = g_getenv("BROWSER"); + if (!browser_cmd[0]) *clickable_url = false; + } + + if (get_config_string(config, "options", "font", &cfgstr)) { vte_terminal_set_font_from_string(vte, cfgstr); g_free(cfgstr); @@ -416,9 +424,6 @@ int main(int argc, char **argv) { command_argv = default_argv; } - browser_cmd[0] = g_getenv("BROWSER"); - if (!browser_cmd[0]) browser_cmd[0] = default_browser; - VtePty *pty = vte_terminal_pty_new(VTE_TERMINAL(vte), VTE_PTY_DEFAULT, &error); if (!pty) { From 6b122293aa2c2e654f597fe448a4e67ebd439b95 Mon Sep 17 00:00:00 2001 From: Simon Gomizelj Date: Thu, 7 Jun 2012 19:36:59 -0400 Subject: [PATCH 3/3] Cleanup --- termite.c | 1 - 1 file changed, 1 deletion(-) diff --git a/termite.c b/termite.c index 59d28cf..3799e11 100644 --- a/termite.c +++ b/termite.c @@ -297,7 +297,6 @@ static void load_config(GtkWindow *window, VteTerminal *vte, if (!browser_cmd[0]) *clickable_url = false; } - if (get_config_string(config, "options", "font", &cfgstr)) { vte_terminal_set_font_from_string(vte, cfgstr); g_free(cfgstr);