зеркало из https://github.com/mozilla/gecko-dev.git
Bug 842782 - p3: lock fullscreen video orientation. r=ralin
- if enabled, lock orienation when fullscreen state change - use video aspect ratio to choose which orientation to lock MozReview-Commit-ID: 3HP60YNbWcc
This commit is contained in:
Родитель
bad6535260
Коммит
38273ed7b3
|
@ -1234,12 +1234,38 @@
|
||||||
},
|
},
|
||||||
|
|
||||||
onFullscreenChange() {
|
onFullscreenChange() {
|
||||||
|
this.updateOrientationState(this.isVideoInFullScreen());
|
||||||
if (this.isVideoInFullScreen()) {
|
if (this.isVideoInFullScreen()) {
|
||||||
Utils._hideControlsTimeout = setTimeout(this._hideControlsFn, this.HIDE_CONTROLS_TIMEOUT_MS);
|
Utils._hideControlsTimeout = setTimeout(this._hideControlsFn, this.HIDE_CONTROLS_TIMEOUT_MS);
|
||||||
}
|
}
|
||||||
this.setFullscreenButtonState();
|
this.setFullscreenButtonState();
|
||||||
},
|
},
|
||||||
|
|
||||||
|
updateOrientationState(lock) {
|
||||||
|
if (!this.video.mozOrientationLockEnabled) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (lock) {
|
||||||
|
if (this.video.mozIsOrientationLocked) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
let dimenDiff = this.video.videoWidth - this.video.videoHeight;
|
||||||
|
if (dimenDiff > 0) {
|
||||||
|
this.video.mozIsOrientationLocked = window.screen.mozLockOrientation("landscape");
|
||||||
|
} else if (dimenDiff < 0) {
|
||||||
|
this.video.mozIsOrientationLocked = window.screen.mozLockOrientation("portrait");
|
||||||
|
} else {
|
||||||
|
this.video.mozIsOrientationLocked = window.screen.mozLockOrientation(window.screen.orientation);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (!this.video.mozIsOrientationLocked) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
window.screen.mozUnlockOrientation();
|
||||||
|
this.video.mozIsOrientationLocked = false;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
clickToPlayClickHandler(e) {
|
clickToPlayClickHandler(e) {
|
||||||
if (e.button != 0) {
|
if (e.button != 0) {
|
||||||
return;
|
return;
|
||||||
|
@ -1836,6 +1862,7 @@
|
||||||
<destructor>
|
<destructor>
|
||||||
<![CDATA[
|
<![CDATA[
|
||||||
this.Utils.terminateEventListeners();
|
this.Utils.terminateEventListeners();
|
||||||
|
this.Utils.updateOrientationState(false);
|
||||||
// randomID used to be a <field>, which meant that the XBL machinery
|
// randomID used to be a <field>, which meant that the XBL machinery
|
||||||
// undefined the property when the element was unbound. The code in
|
// undefined the property when the element was unbound. The code in
|
||||||
// this file actually depends on this, so now that randomID is an
|
// this file actually depends on this, so now that randomID is an
|
||||||
|
|
Загрузка…
Ссылка в новой задаче