Added semi fullscreen function

pull/31/head
Paal Joergensen 2016-11-11 11:45:59 +01:00
parent 426f51caa0
commit 96f84a430a
1 changed files with 17 additions and 3 deletions

View File

@ -477,6 +477,19 @@ H5P.communicator = (function () {
return (window.postMessage && window.addEventListener ? new Communicator() : undefined); return (window.postMessage && window.addEventListener ? new Communicator() : undefined);
})(); })();
/**
* Enter semi fullscreen for the given H5P instance
*
* @method semiFullScreen
* @param {H5P.jQuery} $element Content container.
* @param {Object} instance
* @param {function} exitCallback Callback function called when user exits fullscreen.
* @param {H5P.jQuery} $body For internal use. Gives the body of the iframe.
*/
H5P.semiFullScreen = function ($element, instance, exitCallback, body) {
H5P.fullScreen($element, instance, exitCallback, body, true);
};
/** /**
* Enter fullscreen for the given H5P instance. * Enter fullscreen for the given H5P instance.
* *
@ -484,15 +497,16 @@ H5P.communicator = (function () {
* @param {Object} instance * @param {Object} instance
* @param {function} exitCallback Callback function called when user exits fullscreen. * @param {function} exitCallback Callback function called when user exits fullscreen.
* @param {H5P.jQuery} $body For internal use. Gives the body of the iframe. * @param {H5P.jQuery} $body For internal use. Gives the body of the iframe.
* @param {Boolean} forceSemiFullScreen
*/ */
H5P.fullScreen = function ($element, instance, exitCallback, body) { H5P.fullScreen = function ($element, instance, exitCallback, body, forceSemiFullScreen) {
if (H5P.exitFullScreen !== undefined) { if (H5P.exitFullScreen !== undefined) {
return; // Cannot enter new fullscreen until previous is over return; // Cannot enter new fullscreen until previous is over
} }
if (H5P.isFramed && H5P.externalEmbed === false) { if (H5P.isFramed && H5P.externalEmbed === false) {
// Trigger resize on wrapper in parent window. // Trigger resize on wrapper in parent window.
window.parent.H5P.fullScreen($element, instance, exitCallback, H5P.$body.get()); window.parent.H5P.fullScreen($element, instance, exitCallback, H5P.$body.get(), forceSemiFullScreen);
H5P.isFullscreen = true; H5P.isFullscreen = true;
H5P.exitFullScreen = function () { H5P.exitFullScreen = function () {
window.parent.H5P.exitFullScreen(); window.parent.H5P.exitFullScreen();
@ -572,7 +586,7 @@ H5P.fullScreen = function ($element, instance, exitCallback, body) {
}; };
H5P.isFullscreen = true; H5P.isFullscreen = true;
if (H5P.fullScreenBrowserPrefix === undefined) { if (H5P.fullScreenBrowserPrefix === undefined || forceSemiFullScreen === true) {
// Create semi fullscreen. // Create semi fullscreen.
if (H5P.isFramed) { if (H5P.isFramed) {