@@ -1883,19 +1883,24 @@ function horizontal_hairpin_adjustment(left_or_right, hairpin, region_settings,
18831883 if # expression_list > 0 then
18841884 local dyn_exp = expression_list [1 ][2 ]
18851885 local dyn_def = dyn_exp :CreateTextExpressionDef ()
1886- local dyn_width = expression_list [1 ][1 ]
1886+ local full_dyn_width = expression_list [1 ][1 ]
1887+ local start_dyn_width = full_dyn_width
1888+ local end_dyn_width = 0
18871889 if finale .EXPRJUSTIFY_CENTER == dyn_def .HorizontalJustification then
1888- dyn_width = dyn_width / 2
1890+ start_dyn_width = full_dyn_width / 2
1891+ end_dyn_width = full_dyn_width / 2
18891892 elseif finale .EXPRJUSTIFY_RIGHT == dyn_def .HorizontalJustification then
1890- dyn_width = 0
1893+ start_dyn_width = 0
1894+ end_dyn_width = full_dyn_width
18911895 end
18921896 local cell_metrics = finale .FCCellMetrics ()
18931897 cell_metrics :LoadAtCell (finale .FCCell (dyn_exp .Measure , dyn_exp .Staff ))
18941898 local staff_percent = cell_metrics .StaffScaling / cell_metrics .SystemScaling
1895- dyn_width = dyn_width * staff_percent
1899+ start_dyn_width = start_dyn_width * staff_percent
1900+ end_dyn_width = end_dyn_width * staff_percent
18961901 local handle_offset_from_edupos = expression .calc_handle_offset_for_smart_shape (dyn_exp )
18971902 if left_or_right == " left" then
1898- local total_x = dyn_width + config .left_dynamic_cushion + handle_offset_from_edupos
1903+ local total_x = start_dyn_width + config .left_dynamic_cushion + handle_offset_from_edupos
18991904 the_seg :SetEndpointOffsetX (total_x )
19001905 elseif left_or_right == " right" then
19011906 local next_measure_gap = 0
@@ -1909,7 +1914,7 @@ function horizontal_hairpin_adjustment(left_or_right, hairpin, region_settings,
19091914 end
19101915 end
19111916 cushion_bool = false
1912- local total_x = (0 - dyn_width ) + config .right_dynamic_cushion + next_measure_gap + handle_offset_from_edupos
1917+ local total_x = (0 - end_dyn_width ) + config .right_dynamic_cushion + next_measure_gap + handle_offset_from_edupos
19131918 the_seg :SetEndpointOffsetX (total_x )
19141919 end
19151920 end
0 commit comments