gg: improve system_font_path on linux (#12290)
							parent
							
								
									18da724a9f
								
							
						
					
					
						commit
						77a1e3dedb
					
				|  | @ -39,10 +39,8 @@ pub fn system_font_path() string { | |||
| 		debug_font_println('Using font "C:\\Windows\\Fonts\\arial.ttf"') | ||||
| 		return 'C:\\Windows\\Fonts\\arial.ttf' | ||||
| 	} | ||||
| 	mut fonts := ['Ubuntu-R.ttf', 'Arial.ttf', 'LiberationSans-Regular.ttf', 'NotoSans-Regular.ttf', | ||||
| 		'FreeSans.ttf', 'DejaVuSans.ttf'] | ||||
| 	$if macos { | ||||
| 		fonts = ['/System/Library/Fonts/SFNS.ttf', '/System/Library/Fonts/SFNSText.ttf', | ||||
| 		fonts := ['/System/Library/Fonts/SFNS.ttf', '/System/Library/Fonts/SFNSText.ttf', | ||||
| 			'/Library/Fonts/Arial.ttf'] | ||||
| 		for font in fonts { | ||||
| 			if os.is_file(font) { | ||||
|  | @ -78,19 +76,18 @@ pub fn system_font_path() string { | |||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| 	s := os.execute('fc-list') | ||||
| 	if s.exit_code != 0 { | ||||
| 		panic('failed to fetch system fonts') | ||||
| 	} | ||||
| 	system_fonts := s.output.split('\n') | ||||
| 	for line in system_fonts { | ||||
| 		for font in fonts { | ||||
| 			if line.contains(font) && line.contains(':') { | ||||
| 				res := line.all_before(':') | ||||
| 				debug_font_println('Using font "$res"') | ||||
| 				return res | ||||
| 	mut fm := os.execute('fc-match -v') | ||||
| 	if fm.exit_code == 0 { | ||||
| 		lines := fm.output.split('\n') | ||||
| 		for l in lines { | ||||
| 			if l.contains('file:') { | ||||
| 				font := l.find_between('"', '"') | ||||
| 				debug_font_println('Using font "$font"') | ||||
| 				return font | ||||
| 			} | ||||
| 		} | ||||
| 	} else { | ||||
| 		panic('fc-match failed to fetch system font') | ||||
| 	} | ||||
| 	panic('failed to init the font') | ||||
| } | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue