Commit 9857e7a
Fix minor drawing canvas bugs
Changed files (3)
modifiedlibbirdfont/EditPointHandle.valamodifiedlibbirdfont/PenTool.valamodifiedlibbirdfont/SpacingClassTab.vala
Diff
@@ -235,16 +235,16 @@ public class EditPointHandle : GLib.Object { if (!is_left_handle ()) { if (parent.next != null) { h = parent.get_next ().get_left_handle ();+ h.parent.set_tie_handle (false); h.type = PointType.QUADRATIC; h.move_to_coordinate_internal (px (), py ());- h.parent.set_tie_handle (false); } } else { if (parent.prev != null) { h = parent.get_prev ().get_right_handle ();+ h.parent.set_tie_handle (false); h.type = PointType.QUADRATIC; h.move_to_coordinate_internal (px (), py ());- h.parent.set_tie_handle (false); } } }@@ -570,6 +570,7 @@ public class PenTool : Tool { if (KeyBindings.modifier == SHIFT) { selected_handle.angle = angle;+ selected_handle.process_connected_handle (); } handle_selection.path.update_region_boundaries ();@@ -601,8 +602,10 @@ public class PenTool : Tool { delta_coordinate_y = coordinate_y - last_point_y; foreach (PointSelection selected in selected_points) {- selected.point.x += delta_coordinate_x;- selected.point.y += delta_coordinate_y;+ selected.point.set_position (selected.point.x + delta_coordinate_x,+ selected.point.y + delta_coordinate_y);+ selected.point.recalculate_linear_handles ();+ selected.path.update_region_boundaries (); } } else if (GridTool.has_ttf_grid ()) { coordinate_x = Glyph.path_coordinate_x (x);@@ -612,8 +615,10 @@ public class PenTool : Tool { delta_coordinate_y = coordinate_y - last_point_y; foreach (PointSelection selected in selected_points) {- selected.point.x += delta_coordinate_x;- selected.point.y += delta_coordinate_y;+ selected.point.set_position (selected.point.x + delta_coordinate_x,+ selected.point.y + delta_coordinate_y);+ selected.point.recalculate_linear_handles ();+ selected.path.update_region_boundaries (); } } else { coordinate_x = Glyph.path_coordinate_x (x);@@ -622,8 +627,8 @@ public class PenTool : Tool { delta_coordinate_y = coordinate_y - last_point_y; foreach (PointSelection selected in selected_points) {- selected.point.x += delta_coordinate_x;- selected.point.y += delta_coordinate_y;+ selected.point.set_position (selected.point.x + delta_coordinate_x,+ selected.point.y + delta_coordinate_y); selected.point.recalculate_linear_handles (); selected.path.update_region_boundaries ();@@ -1748,11 +1753,11 @@ public class PenTool : Tool { active_handle = new EditPointHandle.empty (); if (keyval == Key.UP) {- selected_handle.move_delta_coordinate (0, -1 * Glyph.ivz ());+ selected_handle.move_delta_coordinate (0, 1 * Glyph.ivz ()); } if (keyval == Key.DOWN) {- selected_handle.move_delta_coordinate (0, 1 * Glyph.ivz ());+ selected_handle.move_delta_coordinate (0, -1 * Glyph.ivz ()); } if (keyval == Key.LEFT) {@@ -32,6 +32,10 @@ public class SpacingClassTab : FontDisplay { public SpacingClassTab () { } + public static void remove_all_spaving_classes () {+ MainWindow.spacing_class_tab.classes.clear ();+ }+ public Gee.ArrayList<string> get_all_connections (string glyph) { Gee.ArrayList<string> c = new Gee.ArrayList<string> ();