Return to multiple tools

main
Isaiah Odhner 2019-09-21 01:59:56 -04:00
parent d986c5ad99
commit 69146d7279
3 changed files with 15 additions and 7 deletions

View File

@ -38,7 +38,7 @@ function $ToolBox(tools, is_extras){
return;
}
if(selected_tool === tool && tool.deselect){
select_tool(previous_tool);
select_tools(return_to_tools);
}else{
select_tool(tool);
}

View File

@ -28,7 +28,7 @@ var fill_color_k = 0;
var selected_tool = tools[6];
var selected_tools = [selected_tool];
var previous_tool = selected_tool;
var return_to_tools = [selected_tool];
var colors = {
foreground: "",
background: "",
@ -574,9 +574,9 @@ $canvas.on("pointerdown", function(e){
selected_tool.pointerup && selected_tool.pointerup(ctx, pointer.x, pointer.y);
}
if (selected_tools.length === 1) {
if(selected_tool.deselect){
select_tool(previous_tool);
}
if (selected_tool.deselect) {
select_tools(return_to_tools);
}
}
$G.off("pointermove", canvas_pointer_move);
if(iid){

View File

@ -775,9 +775,17 @@ function get_tool_by_name(name){
}
}
// hacky but whatever
// this whole "multiple tools" thing is hacky for now
function select_tools(tools) {
for (var i=0; i<tools.length; i++) {
select_tool(tools[i], i > 0);
}
}
function select_tool(tool, toggle){
if(!selected_tool.deselect){
previous_tool = selected_tool;
if(!(selected_tools.length === 1 && selected_tool.deselect)){
return_to_tools = [...selected_tools];
}
if (toggle) {
var index = selected_tools.indexOf(tool);