Clone in a terminal:
Commit 2d2878e
Johan Mattsson - 2015-05-28T19:27:48+00:00
2d2878e5ef97e4f01703f1a55a62a0faaf43bf6cjohan.mattsson.m@gmail.com

Update items in overview and store font in cached font

Changed files (11)

Diff

diff --git a/install.py b/install.pyindex 0e01c69..fd72d12 100755--- a/install.py+++ b/install.py@@ -103,7 +103,6 @@ install ('resources/bright.theme', '/share/birdfont', 644) install ('resources/dark.theme', '/share/birdfont', 644) install ('resources/high_contrast.theme', '/share/birdfont', 644) install ('resources/key_bindings.xml', '/share/birdfont', 644)-install ('resources/roboto.bf', '/share/birdfont', 644) install ('resources/linux/birdfont_window_icon.png', '/share/birdfont', 644) install ('resources/linux/birdfont.desktop', '/share/applications', 644) install ('resources/ucd.sqlite', '/share/birdfont', 644)diff --git a/libbirdfont/BirdFontFile.vala b/libbirdfont/BirdFontFile.valaindex e6b1b64..228c1d7 100644--- a/libbirdfont/BirdFontFile.vala+++ b/libbirdfont/BirdFontFile.vala@@ -1254,16 +1254,16 @@ class BirdFontFile : GLib.Object { 		EditPoint ep; 		 		path.add (parse_double (px), parse_double (py));-		ep = path.points.get (path.points.size - 1);+		ep = path.get_last_point (); 		ep.get_right_handle ().type = PointType.LINE_DOUBLE_CURVE; 		ep.get_left_handle ().type = PointType.LINE_DOUBLE_CURVE; 		ep.type = PointType.LINE_DOUBLE_CURVE;-		ep.recalculate_linear_handles ();			+		ep.recalculate_linear_handles (); 	}  	private static void cubic_line (Path path, string px, string py) { 		EditPoint ep;-+		 		path.add (parse_double (px), parse_double (py)); 		ep = path.points.get (path.points.size - 1); 		ep.get_right_handle ().type = PointType.LINE_CUBIC;diff --git a/libbirdfont/OpenFontFormat/load_font.c b/libbirdfont/OpenFontFormat/load_font.cindex 6d9c928..87f6135 100644--- a/libbirdfont/OpenFontFormat/load_font.c+++ b/libbirdfont/OpenFontFormat/load_font.c@@ -914,10 +914,10 @@ GString* get_bf_font (FT_Face face, char* file, int* err) { 		if (charcode > 32) { // not control character 			g_string_append_printf (glyph, "<collection unicode=\"U+%x\">\n", (guint)charcode); 			g_string_append_printf (glyph, "\t<glyph left=\"%f\" right=\"%f\" selected=\"true\">\n", 0.0, face->glyph->metrics.horiAdvance * units);-+			 			bf_data = get_bf_path (charcode, face, units_per_em, err); 			g_string_append (glyph, bf_data->str);	-			+						 			g_string_append (glyph, "\t</glyph>\n"); 			g_string_append_printf (glyph, "</collection>\n"); 		} else {diff --git a/libbirdfont/OverView.vala b/libbirdfont/OverView.valaindex 995ba8e..db65e63 100644--- a/libbirdfont/OverView.vala+++ b/libbirdfont/OverView.vala@@ -293,6 +293,7 @@ public class OverView : FontDisplay { 		OverViewItem.width = OverViewItem.DEFAULT_WIDTH * z; 		OverViewItem.height = OverViewItem.DEFAULT_HEIGHT * z; 		OverViewItem.margin = OverViewItem.DEFAULT_MARGIN * z;+		update_item_list (); 		GlyphCanvas.redraw ();	 	} 	@@ -300,6 +301,7 @@ public class OverView : FontDisplay { 		OverViewItem.width = OverViewItem.DEFAULT_WIDTH * 0.5; 		OverViewItem.height = OverViewItem.DEFAULT_HEIGHT * 0.5; 		OverViewItem.margin = OverViewItem.DEFAULT_MARGIN * 0.5;+		update_item_list (); 		GlyphCanvas.redraw (); 		update_zoom_bar (); 	}@@ -308,6 +310,7 @@ public class OverView : FontDisplay { 		OverViewItem.width = OverViewItem.DEFAULT_WIDTH; 		OverViewItem.height = OverViewItem.DEFAULT_HEIGHT; 		OverViewItem.margin = OverViewItem.DEFAULT_MARGIN;+		update_item_list (); 		GlyphCanvas.redraw (); 		update_zoom_bar (); 	}@@ -315,6 +318,7 @@ public class OverView : FontDisplay { 	public override void zoom_max () { 		OverViewItem.width = allocation.width; 		OverViewItem.height = allocation.height;+		update_item_list (); 		GlyphCanvas.redraw (); 	} 	@@ -322,6 +326,7 @@ public class OverView : FontDisplay { 		OverViewItem.width *= 1.1; 		OverViewItem.height *= 1.1; 		OverViewItem.margin *= 1.1;+		update_item_list (); 		GlyphCanvas.redraw (); 		update_zoom_bar (); 	}@@ -329,7 +334,8 @@ public class OverView : FontDisplay { 	public override void zoom_out () { 		OverViewItem.width *= 0.9; 		OverViewItem.height *= 0.9;-		OverViewItem.margin *= 0.9;	+		OverViewItem.margin *= 0.9;+		update_item_list (); 		GlyphCanvas.redraw (); 		update_zoom_bar (); 	}@@ -1296,7 +1302,6 @@ public class OverView : FontDisplay { 		character.set_text ((!) c.to_string ()); 		character.set_font_size (height); 		character.draw_at_top (cr, x + 10, y);-		//character.draw_at_baseline (cr, x, y); 		cr.restore (); 	} diff --git a/libbirdfont/Renderer/CachedFont.vala b/libbirdfont/Renderer/CachedFont.valaindex 0437a57..4fd51a4 100644--- a/libbirdfont/Renderer/CachedFont.vala+++ b/libbirdfont/Renderer/CachedFont.vala@@ -20,18 +20,12 @@ public class CachedFont : GLib.Object { 	public Font? font;  	public double top_limit {-		get {-			return _top_limit;-		}-		+		get { return _top_limit; } 		set { _top_limit = value; } 	}  	public double bottom_limit {-		get {-			return _bottom_limit;-		}-		+		get { return _bottom_limit; } 		set { _bottom_limit = value; } 	} 	@@ -55,7 +49,6 @@ public class CachedFont : GLib.Object { 	} 	 	public Glyph? get_glyph_by_name (string name) {-		Font f = new Font (); 		Glyph? g = null; 		 		if (font != null) {@@ -63,7 +56,7 @@ public class CachedFont : GLib.Object { 		} 		 		if (g == null && name.char_count () == 1) {-			f = fallback_font.get_single_glyph_font (name.get_char (0));+			Font f = fallback_font.get_single_glyph_font (name.get_char (0)); 			g = f.get_glyph_by_name (name); 			 			if (g == null) {@@ -73,6 +66,8 @@ public class CachedFont : GLib.Object { 			top_limit = f.top_limit; 			base_line = f.base_line; 			bottom_limit = f.bottom_limit;	+			+			font = f; 		} 				 		return g;diff --git a/libbirdfont/Renderer/FallbackFont.vala b/libbirdfont/Renderer/FallbackFont.valaindex a610c33..758abca 100644--- a/libbirdfont/Renderer/FallbackFont.vala+++ b/libbirdfont/Renderer/FallbackFont.vala@@ -67,6 +67,7 @@ public class FallbackFont : GLib.Object { 	} 	 	~FallbackFont () {+		print("Delete fallback font."); 		if (default_font != null) { 			close_font (default_font); 		}@@ -76,7 +77,7 @@ public class FallbackFont : GLib.Object { 		Font f; 		 		// remove glyphs from cache if it is full-		if (cached.size > 300) { +		if (cached.size > 300) { 			for (int i = 0; i < 100 && cached.size > 0; i++) { 				glyphs.unset (cached.get (cached.size - 1)); 				cached.remove_at (cached.size - 1);diff --git a/libbirdfont/Renderer/Text.vala b/libbirdfont/Renderer/Text.valaindex 96f642a..0ed0505 100644--- a/libbirdfont/Renderer/Text.vala+++ b/libbirdfont/Renderer/Text.vala@@ -457,8 +457,8 @@ public class Text : Widget { 				warning (@"Path is open in $(glyph.get_name ())."); 			} 			-			path.add_hidden_double_points ();-			+			//path.add_hidden_double_points (); // FIXME: this distorts shapes+				 			prev = path.points.get (path.points.size - 1); 			xa = (prev.x - lsb) * scale + x; 			ya = y - prev.y * scale;@@ -467,6 +467,7 @@ public class Text : Widget { 			by = (y - cached_font.base_line * scale); 			for (int i = 0; i < path.points.size; i++) { 				e = path.points.get (i).copy ();+				 				PenTool.convert_point_segment_type (prev, e, PointType.CUBIC); 				 				xb = (prev.get_right_handle ().x - lsb) * scale + x;diff --git a/libbirdfont/Test.vala b/libbirdfont/Test.valaindex e2ffaba..e18c789 100644--- a/libbirdfont/Test.vala+++ b/libbirdfont/Test.vala@@ -39,6 +39,11 @@ public class Test : Object { 	 	public double get_time () { 		double stop_time = GLib.get_real_time ();+		+		if (time_stamp == 0) {+			return 0;+		}+		 		return (stop_time - time_stamp) / 1000000.0; 	} 	@@ -52,6 +57,11 @@ public class Test : Object { 	 	public string get_test_time () { 		double stop_time = GLib.get_real_time ();+		+		if (time_stamp == 0) {+			return "";+		}+		 		return @"$name $((stop_time - time_stamp) / 1000000.0)s\n"; 	} }diff --git a/libbirdfont/TestBirdFont.vala b/libbirdfont/TestBirdFont.valaindex 8f3bd6c..781217b 100644--- a/libbirdfont/TestBirdFont.vala+++ b/libbirdfont/TestBirdFont.vala@@ -189,9 +189,8 @@ class TestBirdFont : GLib.Object { 			pad (40 - t.name.char_count());
 			stdout.printf (@"$(t.get_time ())s\n");
 		}		
-
-		stdout.printf ("\n");
 		
+		stdout.printf ("\n");
 		stdout.printf ("Total %u test cases executed, %u passed and %u failed.\n", (passed.length () + failed.length ()), passed.length (), failed.length ());
 	}
 
diff --git a/libbirdfont/TestCases.vala b/libbirdfont/TestCases.valaindex 4c9ebea..967f36a 100644--- a/libbirdfont/TestCases.vala+++ b/libbirdfont/TestCases.vala@@ -1307,9 +1307,8 @@ class TestCases { 		} else { 			warning ("Invalid XML code."); 		}- 	}-+		 	static void print_tags (Tag tag) { 		print (tag.get_name ()); 		print ("\n");diff --git a/resources/icons.bf b/resources/icons.bfindex b68680b..050a4a4 100644--- a/resources/icons.bf+++ b/resources/icons.bf@@ -28,7 +28,6 @@ GNU Lesser General Public License</copyright> <grid width="1.0000"/> <grid width="2.0000"/> <grid width="4.0000"/>- <background scale="1.0000" />  <collection unicode="U+30">@@ -365,7 +364,6 @@ GNU Lesser General Public License</copyright> 	<selected id="1"/> 	<glyph id="1" left="-28" right="28"> 		<path data="B -6.8968389986,40.0000000000 M 8.2603830359,40.0000000000 M 8.2603830359,36.9968551331 M -3.3283545617,36.9968551331 M -3.3283545617,29.2239244671 M 7.1297762546,29.2239244671 M 7.1297762546,26.2207434208 M -3.3283545617,26.2207434208 M -3.3283545617,13.6250964687 M -6.8968389986,13.6250964687 M -6.8968389986,40.0000000000" />-		<path data="S -0.5470692718,27.1467646351 L -0.5470692718,27.1467646351 O" /> 	</glyph> </collection> <collection unicode="U+67">@@ -419,7 +417,7 @@ GNU Lesser General Public License</copyright> 	<glyph id="1" left="-28" right="33.597883597883616"> 		<path data="B 33.4557723114,27.7602470013 C 33.4557723114,10.8486376087 19.7651712298,-2.8868862385 2.8535762171,-2.8868862385 C -14.0580336070,-2.8868862385 -27.7935573823,10.8486376087 -27.7935573823,27.7602470013 C -27.7935573823,44.6718405761 -14.0580336070,58.4073788032 2.8535762171,58.4073788032 C 19.7651712298,58.4073788032 33.4557723114,44.6718405761 33.4557723114,27.7602470013" /> 		<path data="B -22.9372197969,27.6712637687 C -22.9372197969,13.3872582207 -11.3620694169,1.8121082225 2.9219361312,1.8121082225 C 17.2059289484,1.8121082225 28.7413083611,13.3872582207 28.7413083611,27.6712637687 C 28.7413083611,41.9552553130 17.2059289484,53.5304180417 2.9219361312,53.5304180417 C -11.3620694169,53.5304180417 -22.9372197969,41.9552553130 -22.9372197969,27.6712637687" />-		<path data="B -0.7322863839,45.1175621773 M 6.5236640807,45.1175621773 M 6.5236640807,39.7818352495 M 6.5236640807,39.7818352495 C 4.1050139259,39.7818352495 0.6722544235,39.7818352495 -0.7322863839,39.7818352495 C -0.7322863839,41.5604108921 -0.7322863839,43.3389865347 -0.7322863839,45.1175621773 M -0.7322863839,45.1175621773 O" />+		<path data="B -0.7322863839,39.7818352495 C 0.6722544235,39.7818352495 4.1050139259,39.7818352495 6.5236640807,39.7818352495 M 6.5236640807,39.7818352495 M 6.5236640807,45.1175621773 M -0.7322863839,45.1175621773 C -0.7322863839,43.3389865347 -0.7322863839,41.5604108921 -0.7322863839,39.7818352495" /> 		<path data="B -0.7322863839,35.1331149086 C 0.6722544235,35.1331149086 4.1050139259,35.1331149086 6.5236640807,35.1331149086 M 6.5236640807,9.4849784247 M -0.7322863839,9.4849784247 M -0.7322863839,35.1331149086" /> 	</glyph> </collection>@@ -979,9 +977,9 @@ GNU Lesser General Public License</copyright> <collection name="undo_tool"> 	<selected id="1"/> 	<glyph id="1" left="-28" right="28">-		<path data="B -17.1240497593,35.4271021824 C -17.1240341156,35.4271021824 -3.3812242912,35.3997257431 8.0524970788,35.4271021824 C 12.6311549242,35.4381153329 15.1601168596,33.2003495424 16.2165423641,30.9784307994 C 17.2729678686,28.7565120564 17.0964993410,26.5786459151 17.1021111384,26.7193676564 D 17.0942766560,26.5570068964 17.0268889543,26.2356555019 16.9517430622,26.0933062470 T D 16.8765971702,25.9509569923 16.6538254250,25.7048723313 16.5196328323,25.6159759674 T D 16.3854402398,25.5270796036 16.0719603697,25.4179224602 15.9115761034,25.4042439175 T D 15.7511918371,25.3905653748 15.4237546475,25.4450612249 15.2764463693,25.5099494875 T D 15.1291380913,25.5748377501 14.8679116258,25.7796441089 14.7697455400,25.9072122672 T D 14.6715794542,26.0347804255 14.5601512292,26.3441097890 14.5155316502,26.4987684732 T D 14.4930464235,26.5767059091 14.5080177018,26.7420008818 14.5055149091,26.8230784086 T C 14.5055144261,26.8230940553 14.5845921450,28.3510591688 13.8699904258,29.8540413289 C 13.1553887066,31.3570234891 11.8611385988,32.8455039583 8.0524970788,32.8361177505 C -3.3903476852,32.8087413113 -17.1240497593,32.8361177505 -16.9847612694,32.8569220126 D -17.1457226778,32.8342544037 -17.4740069983,32.8403557174 -17.6278981938,32.8875543970 T D -17.7817893893,32.9347530767 -18.0651940192,33.1075730021 -18.1776179963,33.2227731097 T D -18.2900419734,33.3379732173 -18.4558986488,33.6255083874 -18.4993300970,33.7805049187 T D -18.5427615452,33.9355014501 -18.5504627675,34.2673532273 -18.5142681536,34.4241976258 T D -18.4780735397,34.5810420242 -18.3257337811,34.8759615198 -18.2187748088,34.9962528065 T D -18.1118158365,35.1165440932 -17.8287826718,35.2838555757 -17.6851971391,35.3566114015 T D -17.6128398168,35.3932753790 -17.4494400216,35.4220357233 -17.3684822529,35.4271021824 T D -17.2862412769,35.4322489466 -17.1851578827,35.4271021824 -17.1240497593,35.4271021824 T" />-		<path data="S 16.2537094464,28.4792657651 D 16.4059460889,28.4278250885 16.6761743745,28.2336143586 16.7812443357,28.1120312931 T D 16.8863142969,27.9904482277 17.0149023081,27.6884572355 17.0681381708,27.5368390260 T D 17.0949654173,27.4604337821 17.0967039504,27.2951483001 17.0964993410,27.2141703983 T C 17.0894753288,24.4342885354 16.7453425365,21.9006694766 15.0432663950,20.0278550873 C 13.3489573403,18.1635821470 10.5172855118,17.2801209859 6.3903561225,17.3390976580 C 6.3714429138,17.3393635994 6.3604454071,17.3387847831 6.3414696237,17.3390976580 M -7.6711794209,17.3513709253 D -7.8300851830,17.3842576455 -8.1365584596,17.5005137407 -8.2652979489,17.5966817314 T D -8.3940374382,17.6928497222 -8.6022036033,17.9506814616 -8.6690777434,18.0967978123 T D -8.7359518835,18.2429141630 -8.7950237595,18.5689829773 -8.7836594285,18.7292733093 T D -8.7722950975,18.8895636413 -8.6502739534,19.1942672290 -8.5809894115,19.3392561623 T D -8.5460747245,19.4123207029 -8.4308992862,19.5308902870 -8.3733664894,19.5878765989 T M -3.4688628655,24.4457939777 D -3.3536328341,24.5600507825 -3.0873667563,24.7512149131 -2.9360699831,24.8053575483 T D -2.7847732098,24.8595001836 -2.4548490539,24.8904906574 -2.2961162819,24.8654697531 T D -2.1373835099,24.8404488488 -1.8329901992,24.7094714821 -1.7056847471,24.6114130280 T D -1.5783792950,24.5133545739 -1.3740429281,24.2524771940 -1.3093336105,24.1053893197 T D -1.2446242929,23.9583014454 -1.1903735391,23.6313959332 -1.2041034536,23.4712908802 T D -1.2178333681,23.3111858272 -1.3443404159,23.0083172043 -1.4157582887,22.8643671226 T D -1.4517480290,22.7918260925 -1.5697694605,22.6760997255 -1.6270296668,22.6188395192 T M -4.3157870961,19.9300820899 M 6.3903561225,19.9300820899 C 10.1777472681,19.8683364865 12.0734389745,20.6716394334 13.0878064464,21.7877690410 C 14.1021739183,22.9038986486 14.4991010005,24.6692566029 14.5124575735,27.4067077895 D 14.5403538484,27.5665651491 14.6469592410,27.8765274682 14.7390500878,28.0082142727 T D 14.8311409346,28.1399010772 15.0923568030,28.3386464070 15.2262812967,28.4274516349 T D 15.2937701138,28.4722034172 15.4516573836,28.5250837793 15.5321313821,28.5341058636 T D 15.7764546883,28.5614973879 16.0823148733,28.5371798958 16.2537094464,28.4792657651 T" />-		<path data="S -7.4445230138,19.9300820899 L -4.6757086154,19.9009306209 D -4.5152562981,19.9251717312 -4.1874857894,19.9223712639 -4.0333910821,19.8767975905 T D -3.8792963747,19.8312239171 -3.5946560518,19.6615470337 -3.4812744066,19.5476754345 T D -3.3678927615,19.4338038354 -3.1994448090,19.1484345212 -3.1545360071,18.9941447352 T D -3.1096272052,18.8398549492 -3.0986135567,18.5086615650 -3.1331728390,18.3517291128 T D -3.1677321213,18.1947966606 -3.3168493019,17.8988668977 -3.4224153509,17.7777143168 T D -3.5279813999,17.6565617359 -3.8088420131,17.4867066448 -3.9514468884,17.4126391886 T D -4.0233100262,17.3753142388 -4.3239267641,17.3965909512 -4.2669005973,17.3390976580 T M -1.2458426465,14.2932929008 D -1.1469238479,14.1646552358 -0.9906276798,13.8765357176 -0.9558682748,13.7196474697 T D -0.9211088698,13.5627592218 -0.9317001073,13.2315520603 -0.9764120924,13.0772051234 T D -1.0211240775,12.9228581864 -1.1892079347,12.6372742668 -1.3024442565,12.5232581540 T D -1.4156805783,12.4092420412 -1.7001042648,12.2392022673 -1.8541407225,12.1934320994 T D -2.0081771801,12.1476619316 -2.3393038578,12.1347979701 -2.4964269543,12.1684798807 T D -2.6535500508,12.2021617913 -2.9381814016,12.3656195231 -3.0720488820,12.4545106714 T D -3.1395089682,12.4993057517 -3.2316585531,12.6378730501 -3.2891706231,12.6948802801 T M -8.3072987563,17.6689593747 D -8.4232031892,17.7825319947 -8.6181821071,18.0460174223 -8.6744980173,18.1965187738 T D -8.7308139275,18.3470201253 -8.7665525669,18.6764637590 -8.7438202363,18.8355404063 T D -8.7210879057,18.9946170535 -8.5945078209,19.3008650581 -8.4982929166,19.4295694898 T D -8.4020780123,19.5582739215 -8.1346993085,19.7486474089 -7.9980297090,19.8331669873 T D -7.9291575457,19.8757590943 -7.7697755588,19.9250242493 -7.6889555074,19.9300820899 T D -7.6067145314,19.9352288541 -7.5056277506,19.9307254313 -7.4445230138,19.9300820899 T" />+		<path data="B -17.1240497593,35.4271021824 C -17.1240341156,35.4271021824 -3.3812242912,35.3997257431 8.0524970788,35.4271021824 C 12.6311549242,35.4381153329 15.1601168596,33.2003495424 16.2165423641,30.9784307994 C 17.2729678686,28.7565120564 17.0964993410,26.5786459151 17.1021111384,26.7193676564 D 17.0942766560,26.5570068964 17.0268889543,26.2356555019 16.9517430622,26.0933062470 T D 16.8765971702,25.9509569923 16.6538254250,25.7048723313 16.5196328323,25.6159759674 T D 16.3854402398,25.5270796036 16.0719603697,25.4179224602 15.9115761034,25.4042439175 T D 15.7511918371,25.3905653748 15.4237546475,25.4450612248 15.2764463693,25.5099494875 T D 15.1291380913,25.5748377501 14.8679116258,25.7796441089 14.7697455400,25.9072122672 T D 14.6715794542,26.0347804255 14.5601512292,26.3441097890 14.5155316502,26.4987684732 T D 14.4930464235,26.5767059091 14.5080177017,26.7420008818 14.5055149091,26.8230784086 T C 14.5055144261,26.8230940553 14.5845921450,28.3510591688 13.8699904258,29.8540413289 C 13.1553887066,31.3570234891 11.8611385988,32.8455039583 8.0524970788,32.8361177505 C -3.3903476852,32.8087413113 -17.1240497593,32.8361177505 -16.9847612694,32.8569220126 D -17.1457226778,32.8342544037 -17.4740069983,32.8403557173 -17.6278981938,32.8875543970 T D -17.7817893893,32.9347530767 -18.0651940192,33.1075730021 -18.1776179963,33.2227731097 T D -18.2900419734,33.3379732173 -18.4558986488,33.6255083874 -18.4993300970,33.7805049187 T D -18.5427615452,33.9355014501 -18.5504627675,34.2673532273 -18.5142681536,34.4241976258 T D -18.4780735397,34.5810420242 -18.3257337811,34.8759615198 -18.2187748088,34.9962528065 T D -18.1118158365,35.1165440932 -17.8287826718,35.2838555757 -17.6851971391,35.3566114015 T D -17.6128398168,35.3932753790 -17.4494400216,35.4220357232 -17.3684822529,35.4271021824 T D -17.2862412769,35.4322489466 -17.1851578827,35.4271021824 -17.1240497593,35.4271021824 T" />+		<path data="S 16.2537094464,28.4792657651 D 16.4059460889,28.4278250885 16.6761743745,28.2336143586 16.7812443357,28.1120312931 T D 16.8863142969,27.9904482277 17.0149023080,27.6884572355 17.0681381708,27.5368390260 T D 17.0949654173,27.4604337821 17.0967039503,27.2951483001 17.0964993410,27.2141703983 T C 17.0894753288,24.4342885354 16.7453425365,21.9006694766 15.0432663950,20.0278550873 C 13.3489573403,18.1635821470 10.5172855118,17.2801209859 6.3903561225,17.3390976580 C 6.3714429138,17.3393635994 6.3604454071,17.3387847831 6.3414696237,17.3390976580 M -7.6711794209,17.3513709253 D -7.8300851830,17.3842576455 -8.1365584596,17.5005137406 -8.2652979489,17.5966817314 T D -8.3940374382,17.6928497222 -8.6022036033,17.9506814616 -8.6690777434,18.0967978123 T D -8.7359518835,18.2429141630 -8.7950237595,18.5689829773 -8.7836594285,18.7292733093 T D -8.7722950975,18.8895636413 -8.6502739534,19.1942672290 -8.5809894115,19.3392561623 T D -8.5460747245,19.4123207029 -8.4308992862,19.5308902870 -8.3733664894,19.5878765989 T M -3.4688628655,24.4457939777 D -3.3536328341,24.5600507825 -3.0873667563,24.7512149130 -2.9360699831,24.8053575483 T D -2.7847732098,24.8595001836 -2.4548490539,24.8904906574 -2.2961162819,24.8654697531 T D -2.1373835099,24.8404488488 -1.8329901992,24.7094714821 -1.7056847471,24.6114130280 T D -1.5783792950,24.5133545739 -1.3740429281,24.2524771940 -1.3093336105,24.1053893197 T D -1.2446242929,23.9583014454 -1.1903735391,23.6313959332 -1.2041034536,23.4712908802 T D -1.2178333681,23.3111858272 -1.3443404159,23.0083172043 -1.4157582887,22.8643671226 T D -1.4517480290,22.7918260925 -1.5697694605,22.6760997255 -1.6270296668,22.6188395192 T M -4.3157870961,19.9300820899 M 6.3903561225,19.9300820899 C 10.1777472681,19.8683364865 12.0734389745,20.6716394334 13.0878064464,21.7877690410 C 14.1021739183,22.9038986486 14.4991010005,24.6692566029 14.5124575735,27.4067077895 D 14.5403538484,27.5665651491 14.6469592410,27.8765274682 14.7390500878,28.0082142727 T D 14.8311409346,28.1399010772 15.0923568030,28.3386464070 15.2262812967,28.4274516349 T D 15.2937701138,28.4722034172 15.4516573836,28.5250837792 15.5321313821,28.5341058636 T D 15.7764546883,28.5614973879 16.0823148733,28.5371798958 16.2537094464,28.4792657651 T" />+		<path data="S -7.4445230138,19.9300820899 L -4.6757086154,19.9009306209 D -4.5152562981,19.9251717312 -4.1874857894,19.9223712639 -4.0333910821,19.8767975905 T D -3.8792963747,19.8312239171 -3.5946560518,19.6615470337 -3.4812744066,19.5476754345 T D -3.3678927615,19.4338038354 -3.1994448090,19.1484345212 -3.1545360071,18.9941447352 T D -3.1096272052,18.8398549492 -3.0986135567,18.5086615650 -3.1331728390,18.3517291128 T D -3.1677321213,18.1947966606 -3.3168493019,17.8988668977 -3.4224153509,17.7777143168 T D -3.5279813999,17.6565617359 -3.8088420131,17.4867066448 -3.9514468884,17.4126391886 T D -4.0233100262,17.3753142388 -4.3239267642,17.3965909511 -4.2669005973,17.3390976580 T M -1.2458426465,14.2932929008 D -1.1469238479,14.1646552358 -0.9906276798,13.8765357176 -0.9558682748,13.7196474697 T D -0.9211088698,13.5627592218 -0.9317001073,13.2315520603 -0.9764120924,13.0772051234 T D -1.0211240775,12.9228581864 -1.1892079347,12.6372742668 -1.3024442565,12.5232581540 T D -1.4156805783,12.4092420412 -1.7001042648,12.2392022672 -1.8541407225,12.1934320994 T D -2.0081771801,12.1476619316 -2.3393038578,12.1347979701 -2.4964269543,12.1684798807 T D -2.6535500508,12.2021617913 -2.9381814017,12.3656195230 -3.0720488820,12.4545106714 T D -3.1395089682,12.4993057517 -3.2316585531,12.6378730501 -3.2891706231,12.6948802801 T M -8.3072987563,17.6689593747 D -8.4232031892,17.7825319947 -8.6181821071,18.0460174223 -8.6744980173,18.1965187738 T D -8.7308139275,18.3470201253 -8.7665525669,18.6764637590 -8.7438202363,18.8355404063 T D -8.7210879057,18.9946170535 -8.5945078209,19.3008650581 -8.4982929166,19.4295694898 T D -8.4020780123,19.5582739215 -8.1346993085,19.7486474089 -7.9980297090,19.8331669873 T D -7.9291575457,19.8757590943 -7.7697755588,19.9250242493 -7.6889555074,19.9300820899 T D -7.6067145314,19.9352288541 -7.5056277506,19.9307254313 -7.4445230138,19.9300820899 T" /> 	</glyph> </collection> <collection name="update_webview">

Contact

Email: johan.mattsson.m@gmail.com
Mastodon: typo.social/@birdfont
GitHub: johanmattssonm
LinkedIn: johan-mattsson-2ab324112