Improve performance!

main
Isaiah Odhner 2019-10-21 14:16:36 -04:00
parent 1501b6a6a4
commit 08d120d543
2 changed files with 16 additions and 6 deletions

View File

@ -73,6 +73,7 @@ $canvas_area.attr("touch-action", "pan-x pan-y");
var $canvas = $(canvas).appendTo($canvas_area);
$canvas.attr("touch-action", "none");
var canvas_bounding_client_rect = canvas.getBoundingClientRect(); // cached for performance, updated later
var $canvas_handles = $Handles($canvas_area, canvas, {
outset: 4,
@ -145,10 +146,6 @@ $canvas.on("user-resized", function(e, _x, _y, width, height){
});
});
$canvas_area.on("resize", function(){
update_magnified_canvas_size();
});
storage.get({
width: default_canvas_width,
height: default_canvas_height,
@ -167,10 +164,21 @@ storage.get({
});
$G.on("resize", function(){ // for browser zoom, and in-app zoom of the canvas
canvas_bounding_client_rect = canvas.getBoundingClientRect();
update_helper_layer();
update_disable_aa();
});
$canvas_area.on("scroll", function() {
canvas_bounding_client_rect = canvas.getBoundingClientRect();
update_helper_layer();
});
$canvas_area.on("resize", function() {
update_magnified_canvas_size();
canvas_bounding_client_rect = canvas.getBoundingClientRect();
update_helper_layer();
});
@ -424,7 +432,7 @@ $G.on("cut copy paste", function(e){
var pointer, pointer_start, pointer_previous, pointer_type, pointer_buttons;
var reverse, ctrl, button;
function e2c(e){
var rect = canvas.getBoundingClientRect();
var rect = canvas_bounding_client_rect;
var cx = e.clientX - rect.left;
var cy = e.clientY - rect.top;
return {
@ -578,6 +586,8 @@ var pointer_active = false;
var pointer_over_canvas = false;
var update_helper_layer_on_pointermove_active = false;
$canvas.on("pointerdown", function(e){
canvas_bounding_client_rect = canvas.getBoundingClientRect();
// Quick Undo when there are multiple pointers (i.e. for touch)
// see pointermove for other pointer types
if(pointer_active && (reverse ? (button === 2) : (button === 0))){

View File

@ -258,7 +258,7 @@
}
// Update the cursor element
var canvas_rect = canvas.getBoundingClientRect();
var canvas_rect = canvas_bounding_client_rect;
$cursor.css({
display: "block",
position: "absolute",