Skip to content

Commit 5dfa681

Browse files
committed
Trigger layout invalidation on widget display
1 parent 896bc54 commit 5dfa681

File tree

4 files changed

+13
-5
lines changed

4 files changed

+13
-5
lines changed

ipywidgets_bokeh/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
"webpack-cli": "^4.8.0"
2929
},
3030
"scripts": {
31-
"dev": "tsc; webpack",
31+
"dev": "tsc; webpack --mode=development",
3232
"build": "tsc && webpack --mode=production",
3333
"clean": "rimraf dist",
3434
"prepack": "npm run clean && npm run build"

ipywidgets_bokeh/src/manager.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ export class WidgetManager extends HTMLManager {
139139
})
140140
}
141141

142-
async render(bundle: ModelBundle, el: HTMLElement): Promise<void> {
142+
async render(bundle: ModelBundle, el: HTMLElement, onDisplay: () => void): Promise<void> {
143143
const {spec, state} = bundle
144144
const new_models = state.state
145145
for (const id in new_models) {
@@ -149,7 +149,9 @@ export class WidgetManager extends HTMLManager {
149149
const models = await this.set_state(state)
150150
const model = models.find((item) => item.model_id == spec.model_id)
151151
if (model != null) {
152-
await this.display_model(undefined as any, model, {el})
152+
const view = await this.create_view(model, {el})
153+
view.on('displayed', onDisplay)
154+
await this.display_view(undefined as any, view, {el})
153155
}
154156
} finally {
155157
for (const id in new_models) {

ipywidgets_bokeh/src/widget.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,13 @@ export class IPyWidgetView extends HTMLBoxView {
3131

3232
async _render(): Promise<void> {
3333
const manager = widget_managers.get(this.model.document!)!
34-
await manager.render(this.model.bundle, this.el)
34+
await manager.render(
35+
this.model.bundle,
36+
this.el,
37+
() => {
38+
this.invalidate_layout()
39+
}
40+
)
3541
}
3642
}
3743

ipywidgets_bokeh/webpack.config.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ module.exports = (env={}, argv={}) => {
3434
}
3535
],
3636
module: {rules},
37-
devtool: false,
37+
devtool: mode === "development" ? 'inline-source-map' : false,
3838
mode,
3939
optimization: {minimize},
4040
}

0 commit comments

Comments
 (0)