Make WordPress Core

Ticket #40974: 40974.1.diff

File 40974.1.diff, 1.4 KB (added by westonruter, 7 years ago)

https://github.com/xwp/wordpress-develop/pull/237/files/b0fc12e..032a888

  • src/wp-admin/js/widgets/text-widgets.js

    diff --git src/wp-admin/js/widgets/text-widgets.js src/wp-admin/js/widgets/text-widgets.js
    index 7932606e3d..f20cce4e0b 100644
    wp.textWidgets = ( function( $ ) { 
    184184                                                        }, updateWidgetBuffer );
    185185                                                }
    186186
    187                                                 editor.save();
     187                                                editor.save({ no_events: true }); // Arg no_events to prevent infinite SaveContent loop.
    188188                                                textarea.trigger( 'change' );
    189189                                        }
    190190                                };
    191                                 editor.on( 'focus', function() {
     191                                editor.on( 'focus', function onEditorFocus() {
    192192                                        control.editorFocused = true;
    193193                                });
     194                                editor.on( 'blur', function onEditorBlur() {
     195                                        triggerChangeIfDirty();
     196                                });
     197                                editor.on( 'paste', function onEditorPaste() {
     198                                        editor.isNotDirty = false; // Due to an apparent defect in TinyMCE where pasting doesn't cause dirty flag to be set.
     199                                        triggerChangeIfDirty();
     200                                });
    194201                                editor.on( 'NodeChange', _.debounce( triggerChangeIfDirty, changeDebounceDelay ) );
    195                                 editor.on( 'blur', function() {
     202
     203                                /*
     204                                 * Note that originally the 'blur' event was used below. It had to be
     205                                 * replaced with 'SaveContent' because the 'blur' event does not trigger
     206                                 * when the user switches to the Text tab.
     207                                 */
     208                                editor.on( 'SaveContent', function() {
    196209                                        control.editorFocused = false;
    197210                                        triggerChangeIfDirty();
    198211                                });