@@ -804,19 +804,24 @@ function scheduleCoverageRefresh(lat, lon, delayMs = 0) {
804804
805805 // Create new load handler that swaps visibility
806806 bufferLoadHandler = function onBufferLoad ( ) {
807- // Swap visibility: hide current active, show buffer
808- activeFrame . classList . remove ( 'coverage-frame-active' ) ;
809- activeFrame . classList . add ( 'coverage-frame-hidden' ) ;
810- bufferFrame . classList . remove ( 'coverage-frame-hidden' ) ;
811- bufferFrame . classList . add ( 'coverage-frame-active' ) ;
812-
813- // Update active frame reference
814- activeFrame = bufferFrame ;
815- debugLog ( "[UI] Coverage iframe swapped (double-buffer)" ) ;
816-
817- // Clean up
818- bufferFrame . removeEventListener ( 'load' , bufferLoadHandler ) ;
819- bufferLoadHandler = null ;
807+ // Small delay to ensure iframe content is fully painted before swap
808+ requestAnimationFrame ( ( ) => {
809+ requestAnimationFrame ( ( ) => {
810+ // Swap visibility: hide current active, show buffer
811+ activeFrame . classList . remove ( 'coverage-frame-active' ) ;
812+ activeFrame . classList . add ( 'coverage-frame-hidden' ) ;
813+ bufferFrame . classList . remove ( 'coverage-frame-hidden' ) ;
814+ bufferFrame . classList . add ( 'coverage-frame-active' ) ;
815+
816+ // Update active frame reference
817+ activeFrame = bufferFrame ;
818+ debugLog ( "[UI] Coverage iframe swapped (double-buffer)" ) ;
819+
820+ // Clean up
821+ bufferFrame . removeEventListener ( 'load' , bufferLoadHandler ) ;
822+ bufferLoadHandler = null ;
823+ } ) ;
824+ } ) ;
820825 } ;
821826
822827 // Set up load listener and start loading in buffer
0 commit comments