Commit 07cb1aa
Set active tool from key binding events
Changed files (7)
modifiedlibbirdfont/DrawingTools.valamodifiedlibbirdfont/ExportCallback.valamodifiedlibbirdfont/Menu.valamodifiedlibbirdfont/MenuItem.valamodifiedlibbirdfont/MenuTab.valamodifiedlibbirdfont/PenTool.valamodifiedlibbirdfont/Toolbox.vala
Diff
@@ -81,7 +81,7 @@ public class DrawingTools : ToolCollection { Tool create_line; Tool delete_button;- public Tool inser_point_on_path_tool;+ public Tool insert_point_on_path_tool; Tool undo_tool; Tool select_all_button; @@ -202,13 +202,13 @@ public class DrawingTools : ToolCollection { key_tools.add_tool (undo_tool); bool insert_points = false;- inser_point_on_path_tool = new Tool ("new_point_on_path", t_("Insert new points on path"));- inser_point_on_path_tool.select_action.connect ((self) => {+ insert_point_on_path_tool = new Tool ("new_point_on_path", t_("Insert new points on path"));+ insert_point_on_path_tool.select_action.connect ((self) => { insert_points = !insert_points;- inser_point_on_path_tool.set_selected (insert_points);+ insert_point_on_path_tool.set_selected (insert_points); });- inser_point_on_path_tool.set_persistent (true);- key_tools.add_tool (inser_point_on_path_tool); + insert_point_on_path_tool.set_persistent (true);+ key_tools.add_tool (insert_point_on_path_tool); // quadratic Bézier points quadratic_points = new Tool ("quadratic_points", t_("Create quadratic Bézier curves"));@@ -22,7 +22,12 @@ public class ExportCallback : GLib.Object { } public void export_fonts_in_background () {- Font font = BirdFont.get_current_font (); + Font font = BirdFont.get_current_font ();+ + if (!MainWindow.native_window.can_export ()) {+ return;+ }+ if (font.font_file == null) { MenuTab.set_save_callback (new SaveCallback ()); MenuTab.save_callback.file_saved.connect (() => {@@ -444,6 +444,10 @@ public class Menu : GLib.Object { if (item.display == "" || item.display == display) { item.action (); }+ + if (item is ToolItem) {+ MainWindow.get_toolbox ().set_current_tool (((ToolItem) item).tool);+ } } } }@@ -58,16 +58,16 @@ public class MenuItem : GLib.Object { switch (key) { case Key.UP:- key_binding += "UP";+ key_binding += t_("UP"); break; case Key.DOWN:- key_binding += "DOWN";+ key_binding += t_("DOWN"); break; case Key.LEFT:- key_binding += "LEFT";+ key_binding += t_("LEFT"); break; case Key.RIGHT:- key_binding += "RIGHT";+ key_binding += t_("RIGHT"); break; default: key_binding += (!) key.to_string ();@@ -77,7 +77,7 @@ public class MenuTab : FontDisplay { } public static void export_fonts_in_background () {- if (suppress_event || MainWindow.native_window.can_export ()) {+ if (suppress_event || !MainWindow.native_window.can_export ()) { return; } @@ -757,7 +757,7 @@ public class PenTool : Tool { return_if_fail (g != null); if ((double_click && !BirdFont.android)- || Toolbox.drawing_tools.inser_point_on_path_tool.is_selected ()) {+ || Toolbox.drawing_tools.insert_point_on_path_tool.is_selected ()) { glyph.insert_new_point_on_path (x, y); return; }@@ -307,6 +307,12 @@ public class Toolbox : GLib.Object { return null; } + public void set_current_tool (Tool tool) {+ if (tool.editor_events) {+ current_tool = tool;+ }+ }+ public Tool get_current_tool () { return current_tool; }@@ -333,9 +339,7 @@ public class Toolbox : GLib.Object { redraw ((int) exp.x - 10, (int) exp.y - 10, allocation_width, (int) (allocation_height - exp.y + 10)); } - if (tool.editor_events) {- current_tool = tool;- }+ set_current_tool (tool); } } }