diff options
author | Hakim El Hattab | 2013-08-20 20:14:22 -0700 |
---|---|---|
committer | Hakim El Hattab | 2013-08-20 20:14:22 -0700 |
commit | 4164200474e2af27803dc7683054f5443743c8a9 (patch) | |
tree | 40dbf6bcb8ef828c060cd39adff0589e6d7822c9 /plugin/notes/notes.html | |
parent | cb26ff62112df74beb6ade2b4d3721d965f09c5d (diff) | |
parent | 2da7c3eacfcd7cc59d9cdee97087b0e2feca625e (diff) |
Merge pull request #567 from hakimel/dev
2.5.0
Diffstat (limited to 'plugin/notes/notes.html')
-rw-r--r-- | plugin/notes/notes.html | 40 |
1 files changed, 23 insertions, 17 deletions
diff --git a/plugin/notes/notes.html b/plugin/notes/notes.html index 8af43fb..0ef285b 100644 --- a/plugin/notes/notes.html +++ b/plugin/notes/notes.html @@ -169,10 +169,12 @@ var notes = document.getElementById( 'notes' ), currentSlide = document.getElementById( 'current-slide' ), - nextSlide = document.getElementById( 'next-slide' ); + nextSlide = document.getElementById( 'next-slide' ), + silenced = false; window.addEventListener( 'message', function( event ) { var data = JSON.parse( event.data ); + // No need for updating the notes in case of fragment changes if ( data.notes !== undefined) { if( data.markdown ) { @@ -183,18 +185,13 @@ } } - // Showing and hiding fragments - if( data.fragment === 'next' ) { - currentSlide.contentWindow.Reveal.nextFragment(); - } - else if( data.fragment === 'prev' ) { - currentSlide.contentWindow.Reveal.prevFragment(); - } - else { - // Update the note slides - currentSlide.contentWindow.Reveal.slide( data.indexh, data.indexv ); - nextSlide.contentWindow.Reveal.slide( data.nextindexh, data.nextindexv ); - } + silenced = true; + + // Update the note slides + currentSlide.contentWindow.Reveal.slide( data.indexh, data.indexv, data.indexf ); + nextSlide.contentWindow.Reveal.slide( data.nextindexh, data.nextindexv ); + + silenced = false; }, false ); @@ -226,12 +223,21 @@ }, 1000 ); - // Navigate the main window when the notes slide changes - currentSlide.contentWindow.Reveal.addEventListener( 'slidechanged', function( event ) { + // Broadcasts the state of the notes window to synchronize + // the main window + function synchronizeMainWindow() { - window.opener.Reveal.slide( event.indexh, event.indexv ); + if( !silenced ) { + var indices = currentSlide.contentWindow.Reveal.getIndices(); + window.opener.Reveal.slide( indices.h, indices.v, indices.f ); + } - } ); + } + + // Navigate the main window when the notes slide changes + currentSlide.contentWindow.Reveal.addEventListener( 'slidechanged', synchronizeMainWindow ); + currentSlide.contentWindow.Reveal.addEventListener( 'fragmentshown', synchronizeMainWindow ); + currentSlide.contentWindow.Reveal.addEventListener( 'fragmenthidden', synchronizeMainWindow ); } else { |