Skip to content

Commit 286b7b4

Browse files
authored
Merge pull request #118 from martinRenou/fix_multicanvas_events
MultiCanvas: fix events
2 parents 02b1dd1 + bfbfcc3 commit 286b7b4

File tree

2 files changed

+5
-32
lines changed

2 files changed

+5
-32
lines changed

ipycanvas/canvas.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -630,6 +630,9 @@ def __init__(self, n_canvases=3, *args, **kwargs):
630630
"""Constructor."""
631631
super(MultiCanvas, self).__init__(*args, _canvases=[Canvas() for _ in range(n_canvases)], **kwargs)
632632

633+
# The latest canvas receives events (interaction layer)
634+
self.on_msg(self._canvases[-1]._handle_frontend_event)
635+
633636
def __getitem__(self, key):
634637
"""Access one of the Canvas instances."""
635638
return self._canvases[key]

src/widget.ts

Lines changed: 2 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -414,7 +414,7 @@ class CanvasView extends DOMWidgetView {
414414
el: HTMLCanvasElement;
415415
ctx: CanvasRenderingContext2D;
416416

417-
model: CanvasModel;
417+
model: CanvasModel | MultiCanvasModel;
418418
}
419419

420420

@@ -525,36 +525,6 @@ class MultiCanvasModel extends DOMWidgetModel {
525525

526526

527527
export
528-
class MultiCanvasView extends DOMWidgetView {
529-
render() {
530-
this.ctx = getContext(this.el);
531-
532-
this.resizeCanvas();
533-
this.model.on_some_change(['width', 'height'], this.resizeCanvas, this);
534-
535-
this.updateCanvas();
536-
}
537-
538-
clear() {
539-
this.ctx.clearRect(0, 0, this.el.width, this.el.height);
540-
}
541-
542-
updateCanvas() {
543-
this.clear();
544-
this.ctx.drawImage(this.model.canvas, 0, 0);
545-
}
546-
547-
private resizeCanvas() {
548-
this.el.setAttribute('width', this.model.get('width'));
549-
this.el.setAttribute('height', this.model.get('height'));
550-
}
551-
552-
get tagName(): string {
553-
return 'canvas';
554-
}
555-
556-
el: HTMLCanvasElement;
557-
ctx: CanvasRenderingContext2D;
558-
528+
class MultiCanvasView extends CanvasView {
559529
model: MultiCanvasModel;
560530
}

0 commit comments

Comments
 (0)