Commit 6701eb6d4f45af5643756da9160a115a916f4845

Authored by Perry Werneck
1 parent d7adc4c5
Exists in master and in 1 other branch develop

Emiting warning on invalid font-family.

Showing 1 changed file with 44 additions and 0 deletions   Show diff stats
src/terminal/font/properties.c
... ... @@ -29,6 +29,7 @@
29 29  
30 30 #include <config.h>
31 31 #include "private.h"
  32 + #include <gdk/gdk.h>
32 33  
33 34 /*--[ Globals ]--------------------------------------------------------------------------------------*/
34 35  
... ... @@ -44,6 +45,33 @@ const gchar * v3270_get_default_font_name()
44 45 #endif // _WIN32
45 46 }
46 47  
  48 +static guint validate_font_family(const gchar *family_name)
  49 +{
  50 + int rc = 2;
  51 +
  52 + gint n_families, i;
  53 + PangoFontFamily **families;
  54 +
  55 + PangoContext * context = gdk_pango_context_get_for_screen(gdk_screen_get_default());
  56 +
  57 + pango_context_list_families(context,&families, &n_families);
  58 +
  59 + for(i=0; i < n_families; i++)
  60 + {
  61 + if(!g_ascii_strcasecmp(pango_font_family_get_name(families[i]),family_name))
  62 + {
  63 + rc = pango_font_family_is_monospace(families[i]) ? 0 : 1;
  64 + break;
  65 + }
  66 +
  67 +
  68 + }
  69 + g_object_unref(G_OBJECT(context));
  70 + g_free(families);
  71 +
  72 + return rc;
  73 +}
  74 +
47 75 LIB3270_EXPORT void v3270_set_font_family(GtkWidget *widget, const gchar *name)
48 76 {
49 77 v3270 * terminal;
... ... @@ -57,6 +85,22 @@ LIB3270_EXPORT void v3270_set_font_family(GtkWidget *widget, const gchar *name)
57 85  
58 86 if(g_ascii_strcasecmp(terminal->font.family,name))
59 87 {
  88 +
  89 + switch(validate_font_family(name))
  90 + {
  91 + case 0:
  92 + g_message("Change font to \"%s\"", name);
  93 + break;
  94 +
  95 + case 1:
  96 + g_warning("Font \"%s\" is not monospace", name);
  97 + break;
  98 +
  99 + default:
  100 + g_warning("Invalid or unexpected font family name: \"%s\"", name);
  101 +
  102 + }
  103 +
60 104 // Font has changed, update it
61 105 g_free(terminal->font.family);
62 106  
... ...