Skip to content

Commit b922b30

Browse files
authored
Merge pull request #293 from vidartf/renderer_hold
Hold auto--rerender context manager
2 parents 680182c + bb2fcd8 commit b922b30

File tree

2 files changed

+17
-2
lines changed

2 files changed

+17
-2
lines changed

js/src/core/Renderer.js

+7-2
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ var RendererModel = RenderableModel.extend({
1919
_model_name: 'RendererModel',
2020
_antialias: false,
2121
_alpha: false,
22+
_pause_autorender: false,
2223

2324
scene: null,
2425
camera: null,
@@ -54,7 +55,9 @@ var RendererModel = RenderableModel.extend({
5455

5556
onChildChanged: function(model, options) {
5657
RenderableModel.prototype.onChildChanged.apply(this, arguments);
57-
this.trigger('rerender', this, {});
58+
if (!this.get('_pause_autorender')) {
59+
this.trigger('rerender', this, {});
60+
}
5861
},
5962

6063
}, {
@@ -160,7 +163,9 @@ var RendererView = RenderableView.extend({
160163
},
161164

162165
update: function() {
163-
this.tick();
166+
if (!this.model.get('_pause_autorender')) {
167+
this.tick();
168+
}
164169
},
165170

166171
acquireRenderer: function() {

pythreejs/core/Renderer.py

+10
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
"""
33

44
import six
5+
from contextlib import contextmanager
56
from ipywidgets import widget_serialization
67
from traitlets import (
78
Unicode, CInt, Instance, Float, Tuple, Undefined, link)
@@ -22,6 +23,7 @@ class Renderer(RenderableWidget):
2223

2324
_view_name = Unicode('RendererView').tag(sync=True)
2425
_model_name = Unicode('RendererModel').tag(sync=True)
26+
_pause_autorender = Bool(False).tag(sync=True)
2527

2628
width = CInt(200)
2729
height = CInt(200)
@@ -58,6 +60,14 @@ def freeze(self):
5860
}
5961
self.send(content)
6062

63+
@contextmanager
64+
def hold(self):
65+
self._pause_autorender = True
66+
try:
67+
yield
68+
finally:
69+
self._pause_autorender = False
70+
6171

6272
if six.PY3:
6373
from inspect import Signature, Parameter

0 commit comments

Comments
 (0)