forked from aniani/vim
patch 8.1.0249: GTK: when screen DPI changes Vim does not handle it
Problem: GTK: when screen DPI changes Vim does not handle it. Solution: Handle the gtk-xft-dpi signal. (Roel van de Kraats, closes #2357)
This commit is contained in:
@@ -788,6 +788,29 @@ property_event(GtkWidget *widget,
|
|||||||
}
|
}
|
||||||
#endif /* defined(FEAT_CLIENTSERVER) */
|
#endif /* defined(FEAT_CLIENTSERVER) */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Handle changes to the "Xft/DPI" setting
|
||||||
|
*/
|
||||||
|
static void
|
||||||
|
gtk_settings_xft_dpi_changed_cb(GtkSettings *gtk_settings UNUSED,
|
||||||
|
GParamSpec *pspec UNUSED,
|
||||||
|
gpointer data UNUSED)
|
||||||
|
{
|
||||||
|
// Create a new PangoContext for this screen, and initialize it
|
||||||
|
// with the current font if necessary.
|
||||||
|
if (gui.text_context != NULL)
|
||||||
|
g_object_unref(gui.text_context);
|
||||||
|
|
||||||
|
gui.text_context = gtk_widget_create_pango_context(gui.mainwin);
|
||||||
|
pango_context_set_base_dir(gui.text_context, PANGO_DIRECTION_LTR);
|
||||||
|
|
||||||
|
if (gui.norm_font != NULL)
|
||||||
|
{
|
||||||
|
// force default font
|
||||||
|
gui_mch_init_font(*p_guifont == NUL ? NULL : p_guifont, FALSE);
|
||||||
|
gui_set_shellsize(TRUE, FALSE, RESIZE_BOTH);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#if GTK_CHECK_VERSION(3,0,0)
|
#if GTK_CHECK_VERSION(3,0,0)
|
||||||
typedef gboolean timeout_cb_type;
|
typedef gboolean timeout_cb_type;
|
||||||
@@ -4383,6 +4406,15 @@ gui_mch_init(void)
|
|||||||
/* Pretend we don't have input focus, we will get an event if we do. */
|
/* Pretend we don't have input focus, we will get an event if we do. */
|
||||||
gui.in_focus = FALSE;
|
gui.in_focus = FALSE;
|
||||||
|
|
||||||
|
// Handle changes to the "Xft/DPI" setting.
|
||||||
|
{
|
||||||
|
GtkSettings *gtk_settings =
|
||||||
|
gtk_settings_get_for_screen(gdk_screen_get_default());
|
||||||
|
|
||||||
|
g_signal_connect(gtk_settings, "notify::gtk-xft-dpi",
|
||||||
|
G_CALLBACK(gtk_settings_xft_dpi_changed_cb), NULL);
|
||||||
|
}
|
||||||
|
|
||||||
return OK;
|
return OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -794,6 +794,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
249,
|
||||||
/**/
|
/**/
|
||||||
248,
|
248,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user