xfce4/xfce4-terminal/patch1.patch
2019-08-07 01:08:05 +02:00

134 lines
7.1 KiB
Diff

From 5e954fc6cb755381f5090dff8cc2371e59f7209b Mon Sep 17 00:00:00 2001
From: Igor <f2404@yandex.ru>
Date: Mon, 5 Aug 2019 16:00:56 -0400
Subject: Use vte_terminal_set_font_scale for zooming
---
terminal/terminal-screen.c | 82 +++++++++++-----------------------------------
1 file changed, 20 insertions(+), 62 deletions(-)
diff --git a/terminal/terminal-screen.c b/terminal/terminal-screen.c
index 4ab1daf..d56bb17 100644
--- a/terminal/terminal-screen.c
+++ b/terminal/terminal-screen.c
@@ -152,9 +152,6 @@ static void terminal_screen_vte_resize_window (VteTerminal
static void terminal_screen_vte_window_contents_changed (TerminalScreen *screen);
static void terminal_screen_vte_window_contents_resized (TerminalScreen *screen);
static void terminal_screen_update_label_orientation (TerminalScreen *screen);
-static gchar *terminal_screen_zoom_font (TerminalScreen *screen,
- gchar *font_name,
- TerminalZoomLevel zoom);
static void terminal_screen_urgent_bell (TerminalWidget *widget,
TerminalScreen *screen);
static void terminal_screen_set_custom_command (TerminalScreen *screen,
@@ -1685,62 +1682,6 @@ terminal_screen_update_label_orientation (TerminalScreen *screen)
-static gchar*
-terminal_screen_zoom_font (TerminalScreen *screen,
- gchar *font_name,
- TerminalZoomLevel zoom)
-{
- gdouble scale;
- PangoFontDescription *font_desc;
- gchar *font_zoomed;
-
- terminal_return_val_if_fail (TERMINAL_IS_SCREEN (screen), NULL);
- terminal_return_val_if_fail (font_name != NULL, NULL);
-
- switch (zoom)
- {
- case TERMINAL_ZOOM_LEVEL_MINIMUM: scale = PANGO_SCALE_XX_SMALL/1.2/1.2/1.2/1.2; break;
- case TERMINAL_ZOOM_LEVEL_XXXXX_SMALL: scale = PANGO_SCALE_XX_SMALL/1.2/1.2/1.2; break;
- case TERMINAL_ZOOM_LEVEL_XXXX_SMALL: scale = PANGO_SCALE_XX_SMALL/1.2/1.2; break;
- case TERMINAL_ZOOM_LEVEL_XXX_SMALL: scale = PANGO_SCALE_XX_SMALL/1.2; break;
- case TERMINAL_ZOOM_LEVEL_XX_SMALL: scale = PANGO_SCALE_XX_SMALL; break;
- case TERMINAL_ZOOM_LEVEL_X_SMALL: scale = PANGO_SCALE_X_SMALL; break;
- case TERMINAL_ZOOM_LEVEL_SMALL: scale = PANGO_SCALE_SMALL; break;
- case TERMINAL_ZOOM_LEVEL_LARGE: scale = PANGO_SCALE_LARGE; break;
- case TERMINAL_ZOOM_LEVEL_X_LARGE: scale = PANGO_SCALE_X_LARGE; break;
- case TERMINAL_ZOOM_LEVEL_XX_LARGE: scale = PANGO_SCALE_XX_LARGE; break;
- case TERMINAL_ZOOM_LEVEL_XXX_LARGE: scale = PANGO_SCALE_XX_LARGE*1.2; break;
- case TERMINAL_ZOOM_LEVEL_XXXX_LARGE: scale = PANGO_SCALE_XX_LARGE*1.2*1.2; break;
- case TERMINAL_ZOOM_LEVEL_XXXXX_LARGE: scale = PANGO_SCALE_XX_LARGE*1.2*1.2*1.2; break;
- case TERMINAL_ZOOM_LEVEL_MAXIMUM: scale = PANGO_SCALE_XX_LARGE*1.2*1.2*1.2*1.2; break;
- default:
- return font_name;
- }
-
- font_desc = pango_font_description_from_string (font_name);
- if (font_desc == NULL)
- return font_name;
-
- if (pango_font_description_get_size_is_absolute (font_desc))
- pango_font_description_set_absolute_size (font_desc,
- scale * pango_font_description_get_size (font_desc));
- else
- pango_font_description_set_size (font_desc,
- scale * pango_font_description_get_size (font_desc));
-
- font_zoomed = pango_font_description_to_string (font_desc);
- pango_font_description_free (font_desc);
-
- if (font_zoomed == NULL)
- return font_name;
-
- g_free (font_name);
-
- return font_zoomed;
-}
-
-
-
static void
terminal_screen_urgent_bell (TerminalWidget *widget,
TerminalScreen *screen)
@@ -2846,6 +2787,7 @@ terminal_screen_update_font (TerminalScreen *screen)
glong grid_w = 0, grid_h = 0;
GSettings *settings;
XfconfChannel *channel;
+ gdouble font_scale = PANGO_SCALE_MEDIUM;
#if VTE_CHECK_VERSION (0, 51, 3)
gdouble cell_width_scale, cell_height_scale;
#endif
@@ -2888,9 +2830,24 @@ terminal_screen_update_font (TerminalScreen *screen)
font_name = g_strdup (terminal_window_get_font (TERMINAL_WINDOW (toplevel)));
}
- if (terminal_window_get_zoom_level (TERMINAL_WINDOW (toplevel)) != TERMINAL_ZOOM_LEVEL_DEFAULT)
- font_name = terminal_screen_zoom_font (screen, font_name,
- terminal_window_get_zoom_level (TERMINAL_WINDOW (toplevel)));
+ switch (terminal_window_get_zoom_level (TERMINAL_WINDOW (toplevel)))
+ {
+ case TERMINAL_ZOOM_LEVEL_MINIMUM: font_scale = PANGO_SCALE_XX_SMALL/1.2/1.2/1.2/1.2; break;
+ case TERMINAL_ZOOM_LEVEL_XXXXX_SMALL: font_scale = PANGO_SCALE_XX_SMALL/1.2/1.2/1.2; break;
+ case TERMINAL_ZOOM_LEVEL_XXXX_SMALL: font_scale = PANGO_SCALE_XX_SMALL/1.2/1.2; break;
+ case TERMINAL_ZOOM_LEVEL_XXX_SMALL: font_scale = PANGO_SCALE_XX_SMALL/1.2; break;
+ case TERMINAL_ZOOM_LEVEL_XX_SMALL: font_scale = PANGO_SCALE_XX_SMALL; break;
+ case TERMINAL_ZOOM_LEVEL_X_SMALL: font_scale = PANGO_SCALE_X_SMALL; break;
+ case TERMINAL_ZOOM_LEVEL_SMALL: font_scale = PANGO_SCALE_SMALL; break;
+ case TERMINAL_ZOOM_LEVEL_LARGE: font_scale = PANGO_SCALE_LARGE; break;
+ case TERMINAL_ZOOM_LEVEL_X_LARGE: font_scale = PANGO_SCALE_X_LARGE; break;
+ case TERMINAL_ZOOM_LEVEL_XX_LARGE: font_scale = PANGO_SCALE_XX_LARGE; break;
+ case TERMINAL_ZOOM_LEVEL_XXX_LARGE: font_scale = PANGO_SCALE_XX_LARGE*1.2; break;
+ case TERMINAL_ZOOM_LEVEL_XXXX_LARGE: font_scale = PANGO_SCALE_XX_LARGE*1.2*1.2; break;
+ case TERMINAL_ZOOM_LEVEL_XXXXX_LARGE: font_scale = PANGO_SCALE_XX_LARGE*1.2*1.2*1.2; break;
+ case TERMINAL_ZOOM_LEVEL_MAXIMUM: font_scale = PANGO_SCALE_XX_LARGE*1.2*1.2*1.2*1.2; break;
+ default: font_scale = PANGO_SCALE_MEDIUM; break;
+ }
}
if (gtk_widget_get_realized (GTK_WIDGET (screen)))
@@ -2901,6 +2858,7 @@ terminal_screen_update_font (TerminalScreen *screen)
font_desc = pango_font_description_from_string (font_name);
vte_terminal_set_allow_bold (VTE_TERMINAL (screen->terminal), font_allow_bold);
vte_terminal_set_font (VTE_TERMINAL (screen->terminal), font_desc);
+ vte_terminal_set_font_scale (VTE_TERMINAL (screen->terminal), font_scale);
pango_font_description_free (font_desc);
g_free (font_name);
}
--
cgit v1.2.1