Browse Source

Clean canvas events

pull/5337/head
Artur Arseniev 2 years ago
parent
commit
86775b83e9
  1. 30
      src/canvas/types.ts
  2. 13
      src/canvas/view/CanvasView.ts

30
src/canvas/types.ts

@ -62,34 +62,6 @@ export enum CanvasEvents {
*/
spotRemove = 'canvas:spot:remove',
/**
* @event `canvas:viewport` Canvas viewport updated (eg. zoom or coordinates).
* @example
* editor.on('canvas:viewport', () => {
* const { Canvas } = editor;
* console.log('Canvas, zoom:', Canvas.getZoom(), 'coords:', Canvas.getCoords());
* });
*/
viewport = 'canvas:viewport',
/**
* @event `canvas:viewport:start` Canvas viewport update started (eg. zooming or panning)
* @example
* editor.on('canvas:viewport:start', () => {
* console.log('viewport update started')
* });
*/
viewportStart = 'canvas:viewport:start',
/**
* @event `canvas:viewport:end` Canvas viewport update ended. This event is debounced on 300ms from the `canvas:viewport:start`.
* @example
* editor.on('canvas:viewport:end', () => {
* console.log('viewport updated ended')
* });
*/
viewportEnd = 'canvas:viewport:end',
/**
* @event `canvas:coords` Canvas coordinates updated.
* @example
@ -103,7 +75,7 @@ export enum CanvasEvents {
* @event `canvas:zoom` Canvas zoom updated.
* @example
* editor.on('canvas:zoom', () => {
* console.log('New canvas zoom:', editor.Canvas.getZoom());
* console.log('Canvas zoom updated:', editor.Canvas.getZoom());
* });
*/
zoom = 'canvas:zoom',

13
src/canvas/view/CanvasView.ts

@ -228,20 +228,14 @@ export default class CanvasView extends ModuleView<Canvas> {
}
updateFrames(ev: Event) {
const { em, module } = this;
const { events } = module;
const { em } = this;
const defOpts = { preserveSelected: 1 };
this.updateFramesArea();
this.clearOff();
em.stopDefault(defOpts);
em.trigger('canvas:update', ev);
em.trigger(events.viewport);
this.timerZoom ? clearTimeout(this.timerZoom) : em.trigger(events.viewportStart);
this.timerZoom = setTimeout(() => {
em.runDefault(defOpts);
em.trigger(events.viewportEnd);
delete this.timerZoom;
}, 300) as any;
this.timerZoom && clearTimeout(this.timerZoom);
this.timerZoom = setTimeout(() => em.runDefault(defOpts), 300) as any;
}
updateFramesArea() {
@ -253,7 +247,6 @@ export default class CanvasView extends ModuleView<Canvas> {
const zoomDc = module.getZoomDecimal();
framesArea.style.transform = `scale(${zoomDc}) translate(${x * mpl}px, ${y * mpl}px)`;
// framesArea.style.transformOrigin = 'top left';
}
if (cvStyle) {

Loading…
Cancel
Save