Skip to content

Commit 5e12c6a

Browse files
committed
additional cleanup when destroying #1145
1 parent 1e0cbe6 commit 5e12c6a

File tree

10 files changed

+62
-5
lines changed

10 files changed

+62
-5
lines changed

dist/reveal.esm.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/reveal.esm.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/reveal.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/reveal.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

js/controllers/backgrounds.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -394,4 +394,10 @@ export default class Backgrounds {
394394

395395
}
396396

397+
destroy() {
398+
399+
this.element.remove();
400+
401+
}
402+
397403
}

js/controllers/focus.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,12 @@ export default class Focus {
7979

8080
}
8181

82+
destroy() {
83+
84+
this.Reveal.getRevealElement().classList.remove( 'focused' );
85+
86+
}
87+
8288
onRevealPointerDown( event ) {
8389

8490
this.focus();

js/controllers/notes.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,4 +111,10 @@ export default class Notes {
111111

112112
}
113113

114+
destroy() {
115+
116+
this.element.remove();
117+
118+
}
119+
114120
}

js/controllers/progress.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,5 +101,10 @@ export default class Progress {
101101

102102
}
103103

104+
destroy() {
105+
106+
this.element.remove();
107+
108+
}
104109

105110
}

js/controllers/slidenumber.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,4 +123,10 @@ export default class SlideNumber {
123123

124124
}
125125

126+
destroy() {
127+
128+
this.element.remove();
129+
130+
}
131+
126132
}

js/reveal.js

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -563,9 +563,14 @@ export default function( revealElement, options ) {
563563
disablePreviewLinks();
564564

565565
// Destroy controllers
566+
notes.destroy();
567+
focus.destroy();
566568
plugins.destroy();
567569
pointer.destroy();
568570
controls.destroy();
571+
progress.destroy();
572+
backgrounds.destroy();
573+
slideNumber.destroy();
569574

570575
// Remove event listeners
571576
document.removeEventListener( 'fullscreenchange', onFullscreenChange );
@@ -575,12 +580,35 @@ export default function( revealElement, options ) {
575580
window.removeEventListener( 'load', layout, false );
576581

577582
// Undo DOM changes
578-
dom.viewport.classList.remove( 'reveal-viewport' );
583+
if( dom.pauseOverlay ) dom.pauseOverlay.remove();
584+
if( dom.statusElement ) dom.statusElement.remove();
585+
579586
document.documentElement.classList.remove( 'reveal-full-page' );
580587

588+
dom.wrapper.classList.remove( 'ready', 'center', 'has-horizontal-slides', 'has-vertical-slides' );
589+
dom.wrapper.removeAttribute( 'data-transition-speed' );
590+
dom.wrapper.removeAttribute( 'data-background-transition' );
591+
592+
dom.viewport.classList.remove( 'reveal-viewport' );
581593
dom.viewport.style.removeProperty( '--slide-width' );
582594
dom.viewport.style.removeProperty( '--slide-height' );
583595

596+
dom.slides.style.removeProperty( 'width' );
597+
dom.slides.style.removeProperty( 'height' );
598+
dom.slides.style.removeProperty( 'zoom' );
599+
dom.slides.style.removeProperty( 'left' );
600+
dom.slides.style.removeProperty( 'top' );
601+
dom.slides.style.removeProperty( 'bottom' );
602+
dom.slides.style.removeProperty( 'right' );
603+
dom.slides.style.removeProperty( 'transform' );
604+
605+
Array.from( dom.wrapper.querySelectorAll( SLIDES_SELECTOR ) ).forEach( slide => {
606+
slide.style.removeProperty( 'display' );
607+
slide.style.removeProperty( 'top' );
608+
slide.removeAttribute( 'hidden' );
609+
slide.removeAttribute( 'aria-hidden' );
610+
} );
611+
584612
}
585613

586614
/**

0 commit comments

Comments
 (0)