@@ -53,11 +53,10 @@ L.Map.include({
5353 toggleFullscreen : function ( options ) {
5454 // the <map> element can't contain a shadow root, so we used a child <div>
5555 // <mapml-viewer> can contain a shadow root, so return it directly
56- var mapEl = this . getContainer ( ) . getRootNode ( ) . host ,
57- container = mapEl . nodeName === 'DIV' ? mapEl . parentElement : mapEl ;
56+ var mapEl = M . getClosest ( this . getContainer ( ) , 'mapml-viewer,[is=web-map]' ) ;
5857 if ( this . isFullscreen ( ) ) {
5958 if ( options && options . pseudoFullscreen ) {
60- this . _disablePseudoFullscreen ( container ) ;
59+ this . _disablePseudoFullscreen ( mapEl ) ;
6160 } else if ( document . exitFullscreen ) {
6261 document . exitFullscreen ( ) ;
6362 } else if ( document . mozCancelFullScreen ) {
@@ -67,21 +66,21 @@ L.Map.include({
6766 } else if ( document . msExitFullscreen ) {
6867 document . msExitFullscreen ( ) ;
6968 } else {
70- this . _disablePseudoFullscreen ( container ) ;
69+ this . _disablePseudoFullscreen ( mapEl ) ;
7170 }
7271 } else {
7372 if ( options && options . pseudoFullscreen ) {
74- this . _enablePseudoFullscreen ( container ) ;
75- } else if ( container . requestFullscreen ) {
76- container . requestFullscreen ( ) ;
77- } else if ( container . mozRequestFullScreen ) {
78- container . mozRequestFullScreen ( ) ;
79- } else if ( container . webkitRequestFullscreen ) {
80- container . webkitRequestFullscreen ( Element . ALLOW_KEYBOARD_INPUT ) ;
81- } else if ( container . msRequestFullscreen ) {
82- container . msRequestFullscreen ( ) ;
73+ this . _enablePseudoFullscreen ( mapEl ) ;
74+ } else if ( mapEl . requestFullscreen ) {
75+ mapEl . requestFullscreen ( ) ;
76+ } else if ( mapEl . mozRequestFullScreen ) {
77+ mapEl . mozRequestFullScreen ( ) ;
78+ } else if ( mapEl . webkitRequestFullscreen ) {
79+ mapEl . webkitRequestFullscreen ( Element . ALLOW_KEYBOARD_INPUT ) ;
80+ } else if ( mapEl . msRequestFullscreen ) {
81+ mapEl . msRequestFullscreen ( ) ;
8382 } else {
84- this . _enablePseudoFullscreen ( container ) ;
83+ this . _enablePseudoFullscreen ( mapEl ) ;
8584 }
8685 }
8786 this . getContainer ( ) . focus ( ) ;
@@ -101,7 +100,10 @@ L.Map.include({
101100
102101 _setFullscreen : function ( fullscreen ) {
103102 this . _isFullscreen = fullscreen ;
104- var container = this . getContainer ( ) . getRootNode ( ) . host ;
103+ var container = M . getClosest (
104+ this . getContainer ( ) ,
105+ 'mapml-viewer,[is=web-map]'
106+ ) ;
105107 if ( fullscreen ) {
106108 L . DomUtil . addClass ( container , 'mapml-fullscreen-on' ) ;
107109 } else {
@@ -111,18 +113,12 @@ L.Map.include({
111113 } ,
112114
113115 _onFullscreenChange : function ( e ) {
114- var fullscreenElement =
115- document . fullscreenElement ||
116- document . mozFullScreenElement ||
117- document . webkitFullscreenElement ||
118- document . msFullscreenElement ,
119- mapEl = this . getContainer ( ) . getRootNode ( ) . host ,
120- container = mapEl . nodeName === 'DIV' ? mapEl . parentElement : mapEl ;
121-
122- if ( fullscreenElement === container && ! this . _isFullscreen ) {
116+ var fullscreenElement = M . getClosest ( this . getContainer ( ) , ':fullscreen' ) ,
117+ mapEl = M . getClosest ( this . getContainer ( ) , 'mapml-viewer,[is=web-map]' ) ;
118+ if ( fullscreenElement === mapEl && ! this . _isFullscreen ) {
123119 this . _setFullscreen ( true ) ;
124120 this . fire ( 'fullscreenchange' ) ;
125- } else if ( fullscreenElement !== container && this . _isFullscreen ) {
121+ } else if ( fullscreenElement !== mapEl && this . _isFullscreen ) {
126122 this . _setFullscreen ( false ) ;
127123 this . fire ( 'fullscreenchange' ) ;
128124 }
0 commit comments