FONT_PLACE_UNKNOWN = 0,
FONT_PLACE_ACTIVEWINDOW,
FONT_PLACE_MENUITEM,
+ FONT_PLACE_OSD,
/* TODO: Add all places based on Openbox's rc.xml */
};
if (!strcmp(nodename, "name")) {
rc.font_name_activewindow = strdup(content);
rc.font_name_menuitem = strdup(content);
+ rc.font_name_osd = strdup(content);
} else if (!strcmp(nodename, "size")) {
rc.font_size_activewindow = atoi(content);
rc.font_size_menuitem = atoi(content);
+ rc.font_size_osd = atoi(content);
}
break;
case FONT_PLACE_ACTIVEWINDOW:
rc.font_size_menuitem = atoi(content);
}
break;
+ case FONT_PLACE_OSD:
+ if (!strcmp(nodename, "name")) {
+ rc.font_name_osd = strdup(content);
+ } else if (!strcmp(nodename, "size")) {
+ rc.font_size_osd = atoi(content);
+ }
+ break;
/* TODO: implement for all font places */
return FONT_PLACE_ACTIVEWINDOW;
} else if (!strcasecmp(place, "MenuItem")) {
return FONT_PLACE_MENUITEM;
+ } else if (!strcasecmp(place, "OSD")) {
+ return FONT_PLACE_OSD;
}
return FONT_PLACE_UNKNOWN;
}
rc.corner_radius = 8;
rc.font_size_activewindow = 10;
rc.font_size_menuitem = 10;
+ rc.font_size_osd = 10;
rc.doubleclick_time = 500;
rc.repeat_rate = 25;
rc.repeat_delay = 600;
if (!rc.font_name_menuitem) {
rc.font_name_menuitem = strdup("sans");
}
+ if (!rc.font_name_osd) {
+ rc.font_name_osd = strdup("sans");
+ }
if (!wl_list_length(&rc.libinput_categories)) {
/* So we still allow tap to click by default */
struct libinput_category *l = libinput_category_create();
{
zfree(rc.font_name_activewindow);
zfree(rc.font_name_menuitem);
+ zfree(rc.font_name_osd);
zfree(rc.theme_name);
struct keybind *k, *k_tmp;
pango_layout_set_width(layout, w * PANGO_SCALE);
pango_layout_set_ellipsize(layout, PANGO_ELLIPSIZE_END);
- /* TODO: use font description from config */
- PangoFontDescription *desc =
- pango_font_description_from_string("sans 10");
+ struct font font = {
+ .name = rc.font_name_osd,
+ .size = rc.font_size_osd,
+ };
+ PangoFontDescription *desc = pango_font_description_new();
+ pango_font_description_set_family(desc, font.name);
+ pango_font_description_set_size(desc, font.size * PANGO_SCALE);
pango_layout_set_font_description(layout, desc);
pango_font_description_free(desc);
buf_init(&buf);
y = OSD_BORDER_WIDTH;
- /* vertically center align */
- struct font font = {
- .name = "sans",
- .size = 10,
- };
y += (OSD_ITEM_HEIGHT - font_height(&font)) / 2;
wl_list_for_each(view, &server->views, link) {