X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fguicast%2Fbcresources.C;h=8c9d1b24653e3a96925cc8d052d979cc08fc05be;hb=680d2000be2db33da1e2733461854158067f5862;hp=fabb3d65e75d7255eea3af2ce30f6983ceae8323;hpb=6fd57106820e676e368399d16b925bdc78d34621;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/guicast/bcresources.C b/cinelerra-5.1/guicast/bcresources.C index fabb3d65..8c9d1b24 100644 --- a/cinelerra-5.1/guicast/bcresources.C +++ b/cinelerra-5.1/guicast/bcresources.C @@ -644,6 +644,7 @@ BC_Resources::BC_Resources() tooltip_delay = 1000; tooltip_bg_color = YELLOW; tooltips_enabled = 1; + textbox_focus_policy = 0; filebox_margin = 110; dirbox_margin = 90; @@ -830,9 +831,21 @@ int BC_Resources::init_fontconfig(const char *search_path) } while(0) char find_command[BCTEXTLEN]; - sprintf(find_command, - "find %s -name 'fonts.dir' -print -exec cat {} \\;", - search_path); + char *fp = find_command, *ep = fp+sizeof(find_command)-1; + fp += snprintf(fp, ep-fp, "find '%s'", search_path); + const char *bc_font_path = getenv("BC_FONT_PATH"); + if( bc_font_path ) { + const char *path = bc_font_path; + for( int len=0; *path; path+=len ) { + const char *cp = strchr(path,':'); + len = !cp ? strlen(path) : cp-path; + char font_path[BCTEXTLEN]; + memcpy(font_path, path, len); font_path[len] = 0; + if( cp ) ++len; + fp += snprintf(fp, ep-fp, " '%s'", font_path); + } + } + fp += snprintf(fp, ep-fp, " -name 'fonts.scale' -print -exec cat {} \\;"); FILE *in = popen(find_command, "r"); FT_Library freetype_library = 0; @@ -863,7 +876,7 @@ int BC_Resources::init_fontconfig(const char *search_path) entry->path = cstrcat(2, current_dir, string); // Foundary skip_str(" -", in_ptr); - get_str(string, " -\n", in_ptr, 1); + get_str(string, "-\n", in_ptr, 1); if( !string[0] ) { delete entry; continue; } entry->foundry = cstrdup(string); if(*in_ptr == '-') in_ptr++; @@ -955,25 +968,25 @@ int BC_Resources::init_fontconfig(const char *search_path) } if(!strcasecmp(entry->swidth, "normal")) - entry->style = FL_WIDTH_NORMAL; + entry->style |= FL_WIDTH_NORMAL; else if(!strcasecmp(entry->swidth, "ultracondensed")) - entry->style = FL_WIDTH_ULTRACONDENSED; + entry->style |= FL_WIDTH_ULTRACONDENSED; else if(!strcasecmp(entry->swidth, "extracondensed")) - entry->style = FL_WIDTH_EXTRACONDENSED; + entry->style |= FL_WIDTH_EXTRACONDENSED; else if(!strcasecmp(entry->swidth, "condensed")) - entry->style = FL_WIDTH_CONDENSED; + entry->style |= FL_WIDTH_CONDENSED; else if(!strcasecmp(entry->swidth, "semicondensed")) - entry->style = FL_WIDTH_SEMICONDENSED; + entry->style |= FL_WIDTH_SEMICONDENSED; else if(!strcasecmp(entry->swidth, "semiexpanded")) - entry->style = FL_WIDTH_SEMIEXPANDED; + entry->style |= FL_WIDTH_SEMIEXPANDED; else if(!strcasecmp(entry->swidth, "expanded")) - entry->style = FL_WIDTH_EXPANDED; + entry->style |= FL_WIDTH_EXPANDED; else if(!strcasecmp(entry->swidth, "extraexpanded")) - entry->style = FL_WIDTH_EXTRAEXPANDED; + entry->style |= FL_WIDTH_EXTRAEXPANDED; else if(!strcasecmp(entry->swidth, "ultraexpanded")) - entry->style = FL_WIDTH_ULTRAEXPANDED; + entry->style |= FL_WIDTH_ULTRAEXPANDED; else - entry->style = FL_WIDTH_NORMAL; + entry->style |= FL_WIDTH_NORMAL; fontlist->append(entry); // printf("TitleMain::build_fonts %s: success\n", entry->path); @@ -1427,7 +1440,7 @@ BC_FontEntry *BC_Resources::find_fontentry(const char *displayname, int style, { if(!style_match) style_match = entry; - if(!preferred_match && (entry->style & preferred)) + if(!preferred_match && entry->fixed_style == preferred) preferred_match = entry; } }