|
@@ -2928,6 +2928,12 @@ int tnsInvalidateFontCache(){
|
|
|
}
|
|
|
tnsFontSingleCharacter *tfntFetchCharTextureIDW(uint32_t ch, int UseMono);
|
|
|
|
|
|
+#ifndef LAGUI_FONT_CUSTOM_PATH
|
|
|
+#define LAGUI_FONT_CUSTOM_PATH "/usr/share/fonts/opentype/noto/"
|
|
|
+#endif
|
|
|
+
|
|
|
+const char* TNS_FONT_CUSTOM=LAGUI_FONT_CUSTOM_PATH;
|
|
|
+
|
|
|
const char* TNS_FONT_LOAD_OPTIONS[9]={"","fonts/","lagui/fonts/","../","../fonts/","../lagui/fonts/","../../","../../fonts/","../../lagui/fonts/"};
|
|
|
const char* TNS_FONT_LOAD_OPTIONS_FROM_HOME[2]={".local/share/fonts/lagui/",".local/share/fonts/"};
|
|
|
|
|
@@ -2940,9 +2946,10 @@ int tnsLoadSystemFontMono(char* from, char* mono){
|
|
|
for(int i=0;i<f->NumFaces;i++){
|
|
|
if(!FT_Get_Advance(f->ftface[i],L'我',FT_LOAD_TARGET_NORMAL | FT_LOAD_NO_HINTING | FT_LOAD_NO_BITMAP, &full_adv)) break;
|
|
|
}
|
|
|
- for(int i=-1;i<11;i++){
|
|
|
+ for(int i=-2;i<11;i++){
|
|
|
char* option;
|
|
|
- if(i<9){ option=(i<0)?from:TNS_FONT_LOAD_OPTIONS[i]; sprintf(buf,"%s%s%s",&MAIN.WorkingDirectory->Ptr,option,mono); }
|
|
|
+ if(i==-2){ sprintf(buf,"%s%s%s",TNS_FONT_CUSTOM,TNS_FONT_CUSTOM[strlen(TNS_FONT_CUSTOM)-1]=='/'?"":"/",mono); }
|
|
|
+ elif(i<9){ option=(i==-1)?from:TNS_FONT_LOAD_OPTIONS[i]; sprintf(buf,"%s%s%s",MAIN.WorkingDirectory->Ptr,option,mono); }
|
|
|
else{ option=TNS_FONT_LOAD_OPTIONS_FROM_HOME[i-9]; sprintf(buf,"%s/%s%s",getenv("HOME"),option,mono); }
|
|
|
if (FT_New_Face(f->ftlib, buf, 0, &f->ftfacemono)) continue;
|
|
|
FT_Select_Charmap(f->ftfacemono, FT_ENCODING_UNICODE);
|
|
@@ -2976,9 +2983,10 @@ int tnsLoadSystemFont(char* from, char* name){
|
|
|
}
|
|
|
|
|
|
int GenHeight=LA_RH*MAIN.FontSize;
|
|
|
- for(int i=-1;i<11;i++){
|
|
|
+ for(int i=-2;i<11;i++){
|
|
|
char* option;
|
|
|
- if(i<9){ option=(i<0)?from:TNS_FONT_LOAD_OPTIONS[i]; sprintf(buf,"%s%s%s",MAIN.WorkingDirectory->Ptr,option,name); }
|
|
|
+ if(i==-2){ sprintf(buf,"%s%s%s",TNS_FONT_CUSTOM,TNS_FONT_CUSTOM[strlen(TNS_FONT_CUSTOM)-1]=='/'?"":"/",name); }
|
|
|
+ elif(i<9){ option=(i==-1)?from:TNS_FONT_LOAD_OPTIONS[i]; sprintf(buf,"%s%s%s",MAIN.WorkingDirectory->Ptr,option,name); }
|
|
|
else{ option=TNS_FONT_LOAD_OPTIONS_FROM_HOME[i-9]; sprintf(buf,"%s/%s%s",getenv("HOME"),option,name); }
|
|
|
FT_Face face; FT_Long i,num_faces; FT_Open_Args args; args.flags=FT_OPEN_PATHNAME; args.pathname=buf;
|
|
|
if(FT_Open_Face(f->ftlib, &args, -1, &face )) continue;
|