Merge pull request #8806 from notnotse/preserve-fullscreen-button-class-names

Preserve button class name list in full screen control on toggle
This commit is contained in:
Andreas Hocevar
2018-10-16 16:58:44 +02:00
committed by GitHub
+17 -3
View File
@@ -103,7 +103,7 @@ class FullScreen extends Control {
const tipLabel = options.tipLabel ? options.tipLabel : 'Toggle full-screen'; const tipLabel = options.tipLabel ? options.tipLabel : 'Toggle full-screen';
const button = document.createElement('button'); const button = document.createElement('button');
button.className = this.cssClassName_ + '-' + isFullScreen(); this.setClassName_(button, isFullScreen());
button.setAttribute('type', 'button'); button.setAttribute('type', 'button');
button.title = tipLabel; button.title = tipLabel;
button.appendChild(this.labelNode_); button.appendChild(this.labelNode_);
@@ -179,10 +179,10 @@ class FullScreen extends Control {
const button = this.element.firstElementChild; const button = this.element.firstElementChild;
const map = this.getMap(); const map = this.getMap();
if (isFullScreen()) { if (isFullScreen()) {
button.className = this.cssClassName_ + '-true'; this.setClassName_(button, true);
replaceNode(this.labelActiveNode_, this.labelNode_); replaceNode(this.labelActiveNode_, this.labelNode_);
} else { } else {
button.className = this.cssClassName_ + '-false'; this.setClassName_(button, false);
replaceNode(this.labelNode_, this.labelActiveNode_); replaceNode(this.labelNode_, this.labelActiveNode_);
} }
if (map) { if (map) {
@@ -190,6 +190,20 @@ class FullScreen extends Control {
} }
} }
/**
* @param {HTMLElement} element Target element
* @param {boolean} fullscreen True if fullscreen class name should be active
* @private
*/
setClassName_(element, fullscreen) {
const activeClassName = this.cssClassName_ + '-true';
const inactiveClassName = this.cssClassName_ + '-false';
const nextClassName = fullscreen ? activeClassName : inactiveClassName;
element.classList.remove(activeClassName);
element.classList.remove(inactiveClassName);
element.classList.add(nextClassName);
}
/** /**
* @inheritDoc * @inheritDoc
* @api * @api