Author: cazfi
Date: Sun Oct  9 12:51:35 2016
New Revision: 34069

URL: http://svn.gna.org/viewcvs/freeciv?rev=34069&view=rev
Log:
Gtk3-clients construct proper font definitions css using pango.

Broken css reported by Bernhard <aldot>

See patch #7162

Modified:
    branches/S2_6/client/gui-gtk-3.0/gui_stuff.c
    branches/S2_6/client/gui-gtk-3.22/gui_stuff.c

Modified: branches/S2_6/client/gui-gtk-3.0/gui_stuff.c
URL: 
http://svn.gna.org/viewcvs/freeciv/branches/S2_6/client/gui-gtk-3.0/gui_stuff.c?rev=34069&r1=34068&r2=34069&view=diff
==============================================================================
--- branches/S2_6/client/gui-gtk-3.0/gui_stuff.c        (original)
+++ branches/S2_6/client/gui-gtk-3.0/gui_stuff.c        Sun Oct  9 12:51:35 2016
@@ -1010,8 +1010,33 @@
 {
   char *str;
   GtkCssProvider *provider;
-
-  str = g_strdup_printf("#Freeciv #%s { font: %s;}", font_name, font_value);
+  PangoFontDescription *desc;
+  int size;
+  const char *fam;
+
+  desc = pango_font_description_from_string(font_value);
+
+  if (desc == NULL) {
+    return;
+  }
+
+  fam = pango_font_description_get_family(desc);
+
+  if (fam == NULL) {
+    return;
+  }
+
+  size = pango_font_description_get_size(desc);
+
+  if (size != 0) {
+    str = g_strdup_printf("#Freeciv #%s { font-family: %s; font-size: %dpt;}",
+                          font_name, fam, size / PANGO_SCALE);
+  } else {
+    str = g_strdup_printf("#Freeciv #%s { font-family: %s; }",
+                          font_name, fam);
+  }
+
+  pango_font_description_free(desc);
 
   provider = gtk_css_provider_new();
   gtk_css_provider_load_from_data(GTK_CSS_PROVIDER(provider),

Modified: branches/S2_6/client/gui-gtk-3.22/gui_stuff.c
URL: 
http://svn.gna.org/viewcvs/freeciv/branches/S2_6/client/gui-gtk-3.22/gui_stuff.c?rev=34069&r1=34068&r2=34069&view=diff
==============================================================================
--- branches/S2_6/client/gui-gtk-3.22/gui_stuff.c       (original)
+++ branches/S2_6/client/gui-gtk-3.22/gui_stuff.c       Sun Oct  9 12:51:35 2016
@@ -1010,8 +1010,33 @@
 {
   char *str;
   GtkCssProvider *provider;
-
-  str = g_strdup_printf("#Freeciv #%s { font: %s;}", font_name, font_value);
+  PangoFontDescription *desc;
+  int size;
+  const char *fam;
+
+  desc = pango_font_description_from_string(font_value);
+
+  if (desc == NULL) {
+    return;
+  }
+
+  fam = pango_font_description_get_family(desc);
+
+  if (fam == NULL) {
+    return;
+  }
+
+  size = pango_font_description_get_size(desc);
+
+  if (size != 0) {
+    str = g_strdup_printf("#Freeciv #%s { font-family: %s; font-size: %dpt;}",
+                          font_name, fam, size / PANGO_SCALE);
+  } else {
+    str = g_strdup_printf("#Freeciv #%s { font-family: %s; }",
+                          font_name, fam);
+  }
+
+  pango_font_description_free(desc);
 
   provider = gtk_css_provider_new();
   gtk_css_provider_load_from_data(GTK_CSS_PROVIDER(provider),


_______________________________________________
Freeciv-commits mailing list
Freeciv-commits@gna.org
https://mail.gna.org/listinfo/freeciv-commits

Reply via email to