diff --git a/inst/www/htmlwidgets.js b/inst/www/htmlwidgets.js index 821e7ea3..b8379847 100644 --- a/inst/www/htmlwidgets.js +++ b/inst/www/htmlwidgets.js @@ -588,20 +588,13 @@ "hidden.htmlwidgets hidden.bs.tab.htmlwidgets hidden.bs.collapse.htmlwidgets", resizeHandler ); - } - // This is needed for the specific case of ioslides, which - // flips slides between display:none and display:block. - // Ideally we would not have to have ioslide-specific code - // here, but rather have ioslides raise a generic event, - // but the rmarkdown package just went to CRAN so the - // window to getting that fixed may be long. - if (window.addEventListener) { - // It's OK to limit this to window.addEventListener - // browsers because ioslides itself only supports - // such browsers. - on(document, "slideenter", resizeHandler); - on(document, "slideleave", resizeHandler); + // subscribe to custom shown event fired by ioslides and reveal.js (and + // perhaps other slide frameworks). This is necessary because some widgets + // (e.g. dygraphs) which start out as display:none have height == 0 and + // width == 0 and this doesn't change when it becomes visible + window.jQuery(el).closest('slide').on('shown', resizeHandler); + window.jQuery(el).closest('section.slide').on('shown', resizeHandler); } }