diff --git a/src/wp-admin/css/themes.css b/src/wp-admin/css/themes.css
index 565f2fa..fc39880 100644
a
|
b
|
body.full-overlay-active { |
1357 | 1357 | height: 100%; |
1358 | 1358 | } |
1359 | 1359 | |
| 1360 | #customize-preview.wp-full-overlay-main { |
| 1361 | background: url(../images/spinner.gif) no-repeat; |
| 1362 | -webkit-background-size: 20px 20px; |
| 1363 | background-size: 20px 20px; |
| 1364 | background-position: center center; |
| 1365 | } |
| 1366 | |
1360 | 1367 | .wp-full-overlay-sidebar .wp-full-overlay-header { |
1361 | 1368 | position: absolute; |
1362 | 1369 | left: 0; |
diff --git a/src/wp-admin/js/customize-controls.js b/src/wp-admin/js/customize-controls.js
index 7c4a631..af9d886 100644
a
|
b
|
|
1769 | 1769 | refresh: function() { |
1770 | 1770 | var self = this; |
1771 | 1771 | |
| 1772 | // Display loading indicator |
| 1773 | this.send( 'loading' ); |
| 1774 | |
1772 | 1775 | this.abort(); |
1773 | 1776 | |
1774 | 1777 | this.loading = new api.PreviewFrame({ |
diff --git a/src/wp-includes/class-wp-customize-manager.php b/src/wp-includes/class-wp-customize-manager.php
index b695271..7958c89 100644
a
|
b
|
final class WP_Customize_Manager { |
432 | 432 | add_action( 'wp', array( $this, 'customize_preview_override_404_status' ) ); |
433 | 433 | add_action( 'wp_head', array( $this, 'customize_preview_base' ) ); |
434 | 434 | add_action( 'wp_head', array( $this, 'customize_preview_html5' ) ); |
| 435 | add_action( 'wp_head', array( $this, 'customize_preview_loading_style' ) ); |
435 | 436 | add_action( 'wp_footer', array( $this, 'customize_preview_settings' ), 20 ); |
436 | 437 | add_action( 'shutdown', array( $this, 'customize_preview_signature' ), 1000 ); |
437 | 438 | add_filter( 'wp_die_handler', array( $this, 'remove_preview_signature' ) ); |
… |
… |
final class WP_Customize_Manager { |
491 | 492 | <![endif]--><?php |
492 | 493 | } |
493 | 494 | |
| 495 | public function customize_preview_loading_style() { |
| 496 | ?><style> |
| 497 | body.customizer-navigating-away { |
| 498 | opacity: 0.25; |
| 499 | cursor: progress !important; |
| 500 | } |
| 501 | body.customizer-navigating-away * { |
| 502 | pointer-events: none !important; |
| 503 | } |
| 504 | </style><?php |
| 505 | } |
| 506 | |
494 | 507 | /** |
495 | 508 | * Print JavaScript settings for preview frame. |
496 | 509 | * |
… |
… |
final class WP_Customize_Manager { |
503 | 516 | 'activePanels' => array(), |
504 | 517 | 'activeSections' => array(), |
505 | 518 | 'activeControls' => array(), |
| 519 | 'l10n' => array( |
| 520 | 'loading' => __( 'Loading ...' ), |
| 521 | ), |
506 | 522 | ); |
507 | 523 | |
508 | 524 | if ( 2 == $this->nonce_tick ) { |
diff --git a/src/wp-includes/js/customize-preview.js b/src/wp-includes/js/customize-preview.js
index 82f7bb8..d095fbf 100644
a
|
b
|
|
115 | 115 | activeControls: api.settings.activeControls |
116 | 116 | } ); |
117 | 117 | |
| 118 | // Display a loading indicator when preview is reloading |
| 119 | api.preview.bind( 'loading', function () { |
| 120 | $( 'body' ).addClass( 'customizer-navigating-away' ); |
| 121 | $( 'html' ).prop( 'title', api.settings.l10n.loading ); |
| 122 | }); |
| 123 | |
118 | 124 | /* Custom Backgrounds */ |
119 | 125 | bg = $.map(['color', 'image', 'position_x', 'repeat', 'attachment'], function( prop ) { |
120 | 126 | return 'background_' + prop; |