cairo-util has used sans font family for title fonts so far.
But sans doesn't support non-ascii characters.
So now let users choose a font family for titles.

The entry name is generic, 'font' so that other places
where draw texts can use this entry too.

Signed-off-by: Ryo Munakata <ryomnk...@gmail.com>
---
 man/weston.ini.man  |  3 +++
 shared/cairo-util.c | 16 +++++++++++++++-
 shared/cairo-util.h |  1 +
 weston.ini.in       |  1 +
 4 files changed, 20 insertions(+), 1 deletion(-)

diff --git a/man/weston.ini.man b/man/weston.ini.man
index ccd7185..0830255 100644
--- a/man/weston.ini.man
+++ b/man/weston.ini.man
@@ -260,6 +260,9 @@ sets the path to lock screen background image (string). 
(tablet shell only)
 .TP 7
 .BI "homescreen=" path
 sets the path to home screen background image (string). (tablet shell only)
+.TP 7
+.BI "font=" font-family
+sets the font family name. Title fonts only supported now.
 .RE
 .SH "LAUNCHER SECTION"
 There can be multiple launcher sections, one for each launcher.
diff --git a/shared/cairo-util.c b/shared/cairo-util.c
index 26286c5..7bdb8cb 100644
--- a/shared/cairo-util.c
+++ b/shared/cairo-util.c
@@ -337,6 +337,18 @@ theme_set_background_source(struct theme *t, cairo_t *cr, 
uint32_t flags)
        }
 }
 
+static char *
+config_get_font_family()
+{
+       char *font_family;
+       struct weston_config *config
+               = weston_config_parse("weston.ini");
+       struct weston_config_section *section
+               = weston_config_get_section(config, "shell", NULL, NULL);
+       weston_config_section_get_string(section, "font", &font_family, "sans");
+       return font_family;
+}
+
 struct theme *
 theme_create(void)
 {
@@ -350,6 +362,7 @@ theme_create(void)
        t->margin = 32;
        t->width = 6;
        t->titlebar_height = 27;
+       t->title_font = config_get_font_family();
        t->frame_radius = 3;
        t->shadow = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, 128, 128);
        cr = cairo_create(t->shadow);
@@ -408,6 +421,7 @@ theme_destroy(struct theme *t)
        cairo_surface_destroy(t->active_frame);
        cairo_surface_destroy(t->inactive_frame);
        cairo_surface_destroy(t->shadow);
+       free(t->title_font);
        free(t);
 }
 
@@ -458,7 +472,7 @@ theme_render_frame(struct theme *t,
                cairo_clip(cr);
 
                cairo_set_operator(cr, CAIRO_OPERATOR_OVER);
-               cairo_select_font_face(cr, "sans",
+               cairo_select_font_face(cr, t->title_font,
                                       CAIRO_FONT_SLANT_NORMAL,
                                       CAIRO_FONT_WEIGHT_BOLD);
                cairo_set_font_size(cr, 14);
diff --git a/shared/cairo-util.h b/shared/cairo-util.h
index fb25c34..060e01b 100644
--- a/shared/cairo-util.h
+++ b/shared/cairo-util.h
@@ -53,6 +53,7 @@ struct theme {
        int margin;
        int width;
        int titlebar_height;
+       char *title_font;
 };
 
 struct theme *
diff --git a/weston.ini.in b/weston.ini.in
index 4fca0bb..6fef17e 100644
--- a/weston.ini.in
+++ b/weston.ini.in
@@ -15,6 +15,7 @@ startup-animation=fade
 #num-workspaces=6
 #cursor-theme=whiteglass
 #cursor-size=24
+#font=sans
 
 #lockscreen-icon=/usr/share/icons/gnome/256x256/actions/lock.png
 #lockscreen=/usr/share/backgrounds/gnome/Garden.jpg
-- 
2.1.0

_______________________________________________
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to