@@ -40,6 +40,8 @@ def guess_y_pos(g_name, anchor_name):
4040 return 3 # Baseline
4141 elif "right" in anchor_name :
4242 return 0 if check_lowercase (g_name ) else 1 # Ascender or Cap-Height
43+ elif "top" in anchor_name and (".cap" in g_name or ".case" in g_name ):
44+ return 1 # Cap-Height
4345 elif check_lowercase (g_name ) or g_name in VALID_ANAMES or any (x in g_name for x in ["comb" , "cmb" ]):
4446 return 2 # X-Height
4547 else :
@@ -135,7 +137,7 @@ def build(self):
135137 >> (+-) @mainTableAddRemoveButton
136138 >> (*) @settingsButton
137139 >> (Clear Anchors... ) @clearAnchorsButton
138- >> (Drop Anchors) @addAnchorsButton
140+ >> (Drop Anchors) @dropAnchorsButton
139141 """
140142
141143 # Make anchor name table items
@@ -148,7 +150,7 @@ def build(self):
148150 clearAnchorsButton = dict (
149151 width = main_button_w ,
150152 ),
151- addAnchorsButton = dict (
153+ dropAnchorsButton = dict (
152154 width = main_button_w ,
153155 ),
154156 anchorNameTable = dict (
@@ -372,18 +374,21 @@ def anchorNameTableAddRemoveButtonAddCallback(self, sender):
372374 anchorName = "(Anchor Name)" ,
373375 )
374376 table .appendItems ([item ])
377+ self .update_main_table_items ()
375378
376379
377380 def anchorNameTableAddRemoveButtonRemoveCallback (self , sender ):
378381 table = self .w .getItem ("anchorNameTable" )
379382 table .removeSelectedItems ()
380383 self .update_data ()
384+ self .update_main_table_items ()
381385
382386
383387 def anchorNameTableDeleteCallback (self , sender ):
384388 table = self .w .getItem ("anchorNameTable" )
385389 table .removeSelectedItems ()
386390 self .update_data ()
391+ self .update_main_table_items ()
387392
388393
389394 def mainTableAddRemoveButtonAddCallback (self , sender ):
@@ -422,7 +427,7 @@ def mainTableMenuCallback(self, sender):
422427 self .w_over .getItem ("posInput" ).set (sel_item ['y_pos' ])
423428
424429
425- def addAnchorsButtonCallback (self , sender ):
430+ def dropAnchorsButtonCallback (self , sender ):
426431 f = CurrentFont ()
427432 if not f :
428433 print ("Please open a UFO first." )
@@ -436,16 +441,18 @@ def addAnchorsButtonCallback(self, sender):
436441 if drop_anchor and g_name in f .keys ():
437442 g = f [g_name ]
438443 y = local_dimensions [y_pos ] + int (y_adjust )
444+ prefix = ""
439445 if g_name in VALID_ANAMES or "cmb" in g_name or "comb" in g_name :
440- anchor_name = "_" + anchor_name
441- if overwrite or anchor_name not in [a .name for a in g .anchors ]:
446+ prefix = "_"
447+ final_anchor_name = prefix + anchor_name
448+ if overwrite or final_anchor_name not in [a .name for a in g .anchors ]:
442449 if overwrite :
443450 for a in g .anchors :
444- if a .name == anchor_name :
451+ if a .name == final_anchor_name :
445452 g .removeAnchor (a )
446453 break
447- append_anchor (g , anchor_name , y )
448- report .setdefault (anchor_name , []).append ((g .name , y ))
454+ append_anchor (g , final_anchor_name , y )
455+ report .setdefault (final_anchor_name , []).append ((g .name , y ))
449456 f .changed ()
450457 star_length = 40
451458 print ()
0 commit comments