From e6d26285ccfcf7abc61bccd927d397908c45fdd9 Mon Sep 17 00:00:00 2001 From: "Dominik Schilling (ocean90)" Date: Wed, 15 Oct 2014 18:25:43 +0000 Subject: [PATCH] Customizer: Don't trigger a change event if two unchanged object values are equal, second pass. Make Underscore.js a dependency for `customize-base` and use `_.isEqual()` to compare the values. (Underscore.js was already enqueued via wp-util.js for Widgets.) props westonruter. fixes #26061. git-svn-id: https://develop.svn.wordpress.org/trunk@29907 602fd350-edb4-49c9-b593-d223f7449a82 --- src/wp-includes/js/customize-base.js | 2 +- src/wp-includes/script-loader.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/wp-includes/js/customize-base.js b/src/wp-includes/js/customize-base.js index 765c59505d..d2488ddc10 100644 --- a/src/wp-includes/js/customize-base.js +++ b/src/wp-includes/js/customize-base.js @@ -184,7 +184,7 @@ window.wp = window.wp || {}; to = this.validate( to ); // Bail if the sanitized value is null or unchanged. - if ( null === to || this._value === to ) + if ( null === to || _.isEqual( from, to ) ) return this; this._value = to; diff --git a/src/wp-includes/script-loader.php b/src/wp-includes/script-loader.php index 2cc0870788..154393fbc1 100644 --- a/src/wp-includes/script-loader.php +++ b/src/wp-includes/script-loader.php @@ -377,7 +377,7 @@ function wp_default_scripts( &$scripts ) { $scripts->add( 'hoverIntent', "/wp-includes/js/hoverIntent$suffix.js", array('jquery'), 'r7', 1 ); - $scripts->add( 'customize-base', "/wp-includes/js/customize-base$suffix.js", array( 'jquery', 'json2' ), false, 1 ); + $scripts->add( 'customize-base', "/wp-includes/js/customize-base$suffix.js", array( 'jquery', 'json2', 'underscore' ), false, 1 ); $scripts->add( 'customize-loader', "/wp-includes/js/customize-loader$suffix.js", array( 'customize-base' ), false, 1 ); $scripts->add( 'customize-preview', "/wp-includes/js/customize-preview$suffix.js", array( 'customize-base' ), false, 1 ); $scripts->add( 'customize-models', "/wp-includes/js/customize-models.js", array( 'underscore', 'backbone' ), false, 1 );