From b15b07ef49a28e670e1579dfc5463d5c43cab8ee Mon Sep 17 00:00:00 2001 From: Henrik Ingo Date: Sat, 21 Oct 2017 14:02:07 +0300 Subject: [PATCH] Trigger impress:steprefresh for every onStepEnter ( goto() ) Unlike impress:stepenter, we emit impress:steprefresh event also when the "entered" step is the current step. This allows plugins to reload or redraw objects if needed. (Note that resize plugin already calls goto() on the active element for similar purposes when it sees a window resize event. Emitting impress:steprefresh allows other plugins to join in such a refresh, and also others can call goto() if a refresh is needed.) --- js/impress.js | 4 ++++ src/impress.js | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/js/impress.js b/js/impress.js index 0a03f72..c72917e 100644 --- a/js/impress.js +++ b/js/impress.js @@ -225,11 +225,15 @@ // `onStepEnter` is called whenever the step element is entered // but the event is triggered only if the step is different than // last entered step. + // We sometimes call `goto`, and therefore `onStepEnter`, just to redraw a step, such as + // after screen resize. In this case - more precisely, in any case - we trigger a + // `impress:steprefresh` event. var onStepEnter = function( step ) { if ( lastEntered !== step ) { lib.util.triggerEvent( step, "impress:stepenter" ); lastEntered = step; } + lib.util.triggerEvent( step, "impress:steprefresh" ); }; // `onStepLeave` is called whenever the currentStep element is left diff --git a/src/impress.js b/src/impress.js index ad428ff..c589ceb 100644 --- a/src/impress.js +++ b/src/impress.js @@ -225,11 +225,15 @@ // `onStepEnter` is called whenever the step element is entered // but the event is triggered only if the step is different than // last entered step. + // We sometimes call `goto`, and therefore `onStepEnter`, just to redraw a step, such as + // after screen resize. In this case - more precisely, in any case - we trigger a + // `impress:steprefresh` event. var onStepEnter = function( step ) { if ( lastEntered !== step ) { lib.util.triggerEvent( step, "impress:stepenter" ); lastEntered = step; } + lib.util.triggerEvent( step, "impress:steprefresh" ); }; // `onStepLeave` is called whenever the currentStep element is left