diff --git a/terminal/terminal-screen.c b/terminal/terminal-screen.c index 8831573..aa5ea9e 100644 --- a/terminal/terminal-screen.c +++ b/terminal/terminal-screen.c @@ -2254,3 +2254,22 @@ terminal_screen_search_find_previous (TerminalScreen *screen) terminal_return_if_fail (TERMINAL_IS_SCREEN (screen)); vte_terminal_search_find_previous (VTE_TERMINAL (screen->terminal)); } + + +void terminal_screen_change_font_size (TerminalScreen *screen, + gint delta) +{ + const PangoFontDescription *origfont; + PangoFontDescription *newfont; + gint size; + + origfont = vte_terminal_get_font (VTE_TERMINAL (screen->terminal)); + newfont = pango_font_description_copy (origfont); + + size = pango_font_description_get_size (newfont) / PANGO_SCALE; + size += delta; + + pango_font_description_set_size (newfont, size * PANGO_SCALE); + vte_terminal_set_font (VTE_TERMINAL (screen->terminal), newfont); + return; +} diff --git a/terminal/terminal-screen.h b/terminal/terminal-screen.h index 9da1506..307db5c 100644 --- a/terminal/terminal-screen.h +++ b/terminal/terminal-screen.h @@ -110,6 +110,8 @@ void terminal_screen_search_find_next (TerminalScreen *scree void terminal_screen_search_find_previous (TerminalScreen *screen); +void terminal_screen_change_font_size (TerminalScreen *screen, + gint delta); G_END_DECLS diff --git a/terminal/terminal-window-ui.xml b/terminal/terminal-window-ui.xml index 16dda85..79587c2 100644 --- a/terminal/terminal-window-ui.xml +++ b/terminal/terminal-window-ui.xml @@ -34,6 +34,8 @@ + + diff --git a/terminal/terminal-window.c b/terminal/terminal-window.c index 8dd564d..51d41a4 100644 --- a/terminal/terminal-window.c +++ b/terminal/terminal-window.c @@ -182,6 +182,10 @@ static void terminal_window_action_contents (GtkAction TerminalWindow *window); static void terminal_window_action_about (GtkAction *action, TerminalWindow *window); +static void terminal_window_action_increase_font (GtkAction *action, + TerminalWindow *window); +static void terminal_window_action_decrease_font (GtkAction *action, + TerminalWindow *window); @@ -207,6 +211,8 @@ static const GtkActionEntry action_entries[] = { "preferences", GTK_STOCK_PREFERENCES, N_ ("Pr_eferences..."), NULL, N_ ("Open the preferences dialog"), G_CALLBACK (terminal_window_action_prefs), }, { "view-menu", NULL, N_ ("_View"), NULL, NULL, NULL, }, { "terminal-menu", NULL, N_ ("_Terminal"), NULL, NULL, NULL, }, + { "increase-font", NULL, N_ ("Increase font size"), "Up", NULL, G_CALLBACK (terminal_window_action_increase_font), }, + { "decrease-font", NULL, N_ ("Decrease font size"), "Down", NULL, G_CALLBACK (terminal_window_action_decrease_font), }, { "set-title", NULL, N_ ("_Set Title..."), NULL, NULL, G_CALLBACK (terminal_window_action_set_title), }, { "search", GTK_STOCK_FIND, N_ ("_Find..."), "f", NULL, G_CALLBACK (terminal_window_action_search), }, { "search-next", NULL, N_ ("Find Ne_xt"), NULL, NULL, G_CALLBACK (terminal_window_action_search_next), }, @@ -1771,6 +1777,23 @@ terminal_window_action_about (GtkAction *action, terminal_util_show_about_dialog (GTK_WINDOW (window)); } +static void +terminal_window_action_increase_font (GtkAction *action, + TerminalWindow *window) +{ + terminal_window_size_push(window); + terminal_screen_change_font_size(window->active, 1); + terminal_window_size_pop(window); +} + +static void +terminal_window_action_decrease_font (GtkAction *action, + TerminalWindow *window) +{ + terminal_window_size_push(window); + terminal_screen_change_font_size(window->active, -1); + terminal_window_size_pop(window); +} /**