Commit c43d87f8 authored by Pedro Eduardo Trujillo's avatar Pedro Eduardo Trujillo
Browse files

Mejora compatibilidad de modo fullscreen

parent afefa135
Loading
Loading
Loading
Loading
+56 −6
Original line number Diff line number Diff line
define([
	'dojo/_base/declare'
	, 'dojo/_base/lang'
	, 'dojo/on'
	, 'put-selector/put'
	, 'redmic/modules/base/_Module'
	, 'redmic/modules/base/_Show'
], function(
	declare
	, lang
	, on
	, put
	, _Module
	, _Show
@@ -22,7 +24,11 @@ define([

			this.config = {
				ownChannel: 'fullscreenToggle',
				'class': 'fullscreenToggle'
				'class': 'fullscreenToggle',
				enableClass: 'fa-expand',
				disableClass: 'fa-compress',

				_fullscreenStatus: false
			};

			lang.mixin(this, this.config, args);
@@ -33,18 +39,62 @@ define([
			this.inherited(arguments);

			put(this.domNode, '[title=$]', this.i18n.fullscreen);
			put(this.domNode, 'i');
			this.buttonNode = put(this.domNode, 'i.fa.' + this.enableClass);

			on(this.domNode, 'click', lang.hitch(this, this._fullscreenOnClick));

			this.domNode.onclick = lang.hitch(this, this._fullscreenOnClick);
			var fullscreenEvents = ['fullscreenchange', 'webkitfullscreenchange', 'mozfullscreenchange'];
			on(this.ownerDocument, fullscreenEvents, lang.hitch(this, this._fullscreenOnChange));
		},

		_fullscreenOnClick: function(evt) {

			if (this.ownerDocument.fullscreenElement) {
				this.ownerDocument.exitFullscreen();
			if (this._fullscreenStatus) {
				this._disableFullscreen();

				put(this.buttonNode, '.' + this.enableClass);
				put(this.buttonNode, '!' + this.disableClass);
			} else {
				this.ownerDocumentBody.requestFullscreen();
				this._enableFullscreen();

				put(this.buttonNode, '!' + this.enableClass);
				put(this.buttonNode, '.' + this.disableClass);
			}
		},

		_enableFullscreen: function() {

			var reqFullscreenMethodName;

			if (this.ownerDocumentBody.webkitRequestFullscreen) {
				reqFullscreenMethodName = 'webkitRequestFullscreen';
			} else if (this.ownerDocumentBody.mozRequestFullscreen) {
				reqFullscreenMethodName = 'mozRequestFullscreen';
			} else if (this.ownerDocumentBody.requestFullscreen) {
				reqFullscreenMethodName = 'requestFullscreen';
			}

			reqFullscreenMethodName && this.ownerDocumentBody[reqFullscreenMethodName]();
		},

		_disableFullscreen: function() {

			var exitFullscreenMethodName;

			if (this.ownerDocument.webkitExitFullscreen) {
				exitFullscreenMethodName = 'webkitExitFullscreen';
			} else if (this.ownerDocument.mozExitFullscreen) {
				exitFullscreenMethodName = 'mozExitFullscreen';
			} else if (this.ownerDocument.exitFullscreen) {
				exitFullscreenMethodName = 'exitFullscreen';
			}

			exitFullscreenMethodName && this.ownerDocument[exitFullscreenMethodName]();
		},

		_fullscreenOnChange: function(evt) {

			this._fullscreenStatus = !this._fullscreenStatus;
		},

		_getNodeToShow: function() {
Compare 9c54260f to 6f0faabe
Original line number Diff line number Diff line
Subproject commit 9c54260f2853df317e63d483bc14501e1a8e6268
Subproject commit 6f0faabe92450cbb027989eca89340a81cce481b