Toggle tools

and make it so the airbrush + brush work whichever you select first
main
Isaiah Odhner 2019-09-20 11:04:42 -04:00
parent cc01ea1496
commit da7689d785
4 changed files with 29 additions and 8 deletions

View File

@ -33,10 +33,14 @@ function $ToolBox(tools, is_extras){
});
$b.on("click", function(e){
if (e.shiftKey) {
select_tool(tool, true);
return;
}
if(selected_tool === tool && tool.deselect){
select_tool(previous_tool);
}else{
select_tool(tool, e.shiftKey);
select_tool(tool);
}
});

View File

@ -555,6 +555,8 @@ $canvas.on("pointerdown", function(e){
pointer_start = pointer_previous = pointer = e2c(e);
var pointerdown_action = function(){
selected_tools.forEach((selected_tool)=> {
if(selected_tool.paint || selected_tool.pointerdown){
tool_go("pointerdown");
}
@ -571,14 +573,17 @@ $canvas.on("pointerdown", function(e){
pointer = e2c(e);
selected_tool.pointerup && selected_tool.pointerup(ctx, pointer.x, pointer.y);
}
if (selected_tools.length === 0) {
if(selected_tool.deselect){
select_tool(previous_tool);
}
}
$G.off("pointermove", canvas_pointer_move);
if(iid){
clearInterval(iid);
}
});
});
};
if((typeof selected_tool.passive === "function") ? selected_tool.passive() : selected_tool.passive){

View File

@ -774,20 +774,32 @@ function get_tool_by_name(name){
}
}
function select_tool(tool, add){
function select_tool(tool, toggle){
if(!selected_tool.deselect){
previous_tool = selected_tool;
}
selected_tool = tool;
if (add) {
selected_tools.push(tool);
if (toggle) {
var index = selected_tools.indexOf(tool);
if (index === -1) {
selected_tools.push(tool);
} else {
selected_tools.splice(index, 1);
}
if (selected_tools.length > 0) {
selected_tool = selected_tools[selected_tools.length - 1];
} else {
selected_tool = tools[6];
selected_tools = [selected_tool];
}
} else {
selected_tool = tool;
selected_tools = [tool];
}
deselect();
if(selected_tool.activate){
selected_tool.activate();
if(tool.preload){
tool.preload();
}
$toolbox.update_selected_tool();

View File

@ -367,7 +367,7 @@ tools = [{
description: "Inserts text into the picture.",
cursor: ["precise", [16, 16], "crosshair"],
passive: true,
activate: function(){
preload: function(){
setTimeout(FontDetective.preload, 10);
},
drag_start_x: 0,