Make WordPress Core

Ticket #29838: 29838.4.diff

File 29838.4.diff, 7.3 KB (added by joedolson, 4 months ago)

New patch.

  • src/js/_enqueues/admin/post.js

     
    434434                $previewField.val('');
    435435        });
    436436
    437         // This code is meant to allow tabbing from Title to Post content.
    438         $('#title').on( 'keydown.editor-focus', function( event ) {
    439                 var editor;
    440 
    441                 if ( event.keyCode === 9 && ! event.ctrlKey && ! event.altKey && ! event.shiftKey ) {
    442                         editor = typeof tinymce != 'undefined' && tinymce.get('content');
    443 
    444                         if ( editor && ! editor.isHidden() ) {
    445                                 editor.focus();
    446                         } else if ( $textarea.length ) {
    447                                 $textarea.trigger( 'focus' );
    448                         } else {
    449                                 return;
    450                         }
    451 
    452                         event.preventDefault();
    453                 }
    454         });
    455 
    456437        // Auto save new posts after a title is typed.
    457438        if ( $( '#auto_draft' ).val() ) {
    458439                $( '#title' ).on( 'blur', function() {
  • src/js/_enqueues/vendor/tinymce/plugins/wordpress/plugin.js

     
    10741074                        }
    10751075                } );
    10761076
     1077                editor.on( 'keydown', function( event ) {
     1078                        if ( event.keyCode === 9 && event.shiftKey ) {
     1079                                var toolbar = editor.theme.panel.find( '.toolbar:not(.menubar)' )[0];
     1080                                if ( toolbar ) {
     1081                                        toolbar.focus( true );
     1082                                }
     1083                        }
     1084                });
     1085
    10771086                editor.on( 'nodechange', function( event ) {
    10781087                        var collapsed = editor.selection.isCollapsed();
    10791088
  • src/js/_enqueues/wp/editor/base.js

     
    7979                        var editorHeight, toolbarHeight, iframe,
    8080                                editor = tinymce.get( id ),
    8181                                wrap = $$( '#wp-' + id + '-wrap' ),
     82                                htmlSwitch = wrap.find( '.switch-tmce' ),
     83                                tmceSwitch = wrap.find( '.switch-html' ),
    8284                                $textarea = $$( '#' + id ),
    8385                                textarea = $textarea[0];
    8486
     
    103105
    104106                                editorHeight = parseInt( textarea.style.height, 10 ) || 0;
    105107
    106                                 var keepSelection = false;
    107                                 if ( editor ) {
    108                                         keepSelection = editor.getParam( 'wp_keep_scroll_position' );
    109                                 } else {
    110                                         keepSelection = window.tinyMCEPreInit.mceInit[ id ] &&
    111                                                                         window.tinyMCEPreInit.mceInit[ id ].wp_keep_scroll_position;
    112                                 }
     108                                addHTMLBookmarkInTextAreaContent( $textarea );
    113109
    114                                 if ( keepSelection ) {
    115                                         // Save the selection.
    116                                         addHTMLBookmarkInTextAreaContent( $textarea );
    117                                 }
    118 
    119110                                if ( editor ) {
    120111                                        editor.show();
    121112
     
    130121                                                }
    131122                                        }
    132123
    133                                         if ( editor.getParam( 'wp_keep_scroll_position' ) ) {
    134                                                 // Restore the selection.
    135                                                 focusHTMLBookmarkInVisualEditor( editor );
    136                                         }
     124                                        focusHTMLBookmarkInVisualEditor( editor );
    137125                                } else {
    138126                                        tinymce.init( window.tinyMCEPreInit.mceInit[ id ] );
    139127                                }
    140128
    141129                                wrap.removeClass( 'html-active' ).addClass( 'tmce-active' );
     130                                tmceSwitch.attr( 'aria-pressed', false );
     131                                htmlSwitch.attr( 'aria-pressed', true );
    142132                                $textarea.attr( 'aria-hidden', true );
    143133                                window.setUserSetting( 'editor', 'tinymce' );
    144134
     
    168158
    169159                                        var selectionRange = null;
    170160
    171                                         if ( editor.getParam( 'wp_keep_scroll_position' ) ) {
    172                                                 selectionRange = findBookmarkedPosition( editor );
    173                                         }
     161                                        selectionRange = findBookmarkedPosition( editor );
    174162
    175163                                        editor.hide();
    176164
     
    184172                                }
    185173
    186174                                wrap.removeClass( 'tmce-active' ).addClass( 'html-active' );
     175                                tmceSwitch.attr( 'aria-pressed', true );
     176                                htmlSwitch.attr( 'aria-pressed', false );
    187177                                $textarea.attr( 'aria-hidden', false );
    188178                                window.setUserSetting( 'editor', 'html' );
    189179                        }
     
    520510                 * Focuses the selection markers in Visual mode.
    521511                 *
    522512                 * The method checks for existing selection markers inside the editor DOM (Visual mode)
    523                  * and create a selection between the two nodes using the DOM `createRange` selection API
     513                 * and create a selection between the two nodes using the DOM `createRange` selection API.
    524514                 *
    525515                 * If there is only a single node, select only the single node through TinyMCE's selection API
    526516                 *
     
    545535                                }
    546536                        }
    547537
    548                         if ( editor.getParam( 'wp_keep_scroll_position' ) ) {
    549                                 scrollVisualModeToStartElement( editor, startNode );
    550                         }
     538                        scrollVisualModeToStartElement( editor, startNode );
    551539
    552540                        removeSelectionMarker( startNode );
    553541                        removeSelectionMarker( endNode );
  • src/wp-admin/edit-form-advanced.php

     
    621621                array(
    622622                        '_content_editor_dfw' => $_content_editor_dfw,
    623623                        'drag_drop_upload'    => true,
    624                         'tabfocus_elements'   => 'content-html,save-post',
    625624                        'editor_height'       => 300,
    626625                        'tinymce'             => array(
    627626                                'resize'                  => false,
    628627                                'wp_autoresize_on'        => $_wp_editor_expand,
    629628                                'add_unload_trigger'      => false,
    630                                 'wp_keep_scroll_position' => ! $is_IE,
    631629                        ),
    632630                )
    633631        );
  • src/wp-includes/class-wp-editor.php

     
    188188                                if ( 'html' !== $default_editor ) {
    189189                                        $default_editor = 'tinymce';
    190190                                }
     191                                $tmce_active = ( 'html' === $default_editor ) ? ' aria-pressed="true"' : '';
     192                                $html_active = ( 'html' === $default_editor ) ? '' : ' aria-pressed="true"';
    191193
    192                                 $buttons .= '<button type="button" id="' . $editor_id_attr . '-tmce" class="wp-switch-editor switch-tmce"' .
     194                                $buttons .= '<button type="button" id="' . $editor_id_attr . '-tmce"' . $html_active . ' class="wp-switch-editor switch-tmce"' .
    193195                                        ' data-wp-editor-id="' . $editor_id_attr . '">' . _x( 'Visual', 'Name for the Visual editor tab' ) . "</button>\n";
    194                                 $buttons .= '<button type="button" id="' . $editor_id_attr . '-html" class="wp-switch-editor switch-html"' .
     196                                $buttons .= '<button type="button" id="' . $editor_id_attr . '-html"' . $tmce_active . ' class="wp-switch-editor switch-html"' .
    195197                                        ' data-wp-editor-id="' . $editor_id_attr . '">' . _x( 'Text', 'Name for the Text editor tab (formerly HTML)' ) . "</button>\n";
    196198                        } else {
    197199                                $default_editor = 'tinymce';
     
    11131115                        'end_container_on_empty_block' => true,
    11141116                        'wpeditimage_html5_captions'   => true,
    11151117                        'wp_lang_attr'                 => get_bloginfo( 'language' ),
    1116                         'wp_keep_scroll_position'      => false,
    11171118                        'wp_shortcut_labels'           => wp_json_encode( $shortcut_labels ),
    11181119                );
    11191120
  • src/wp-includes/css/editor.css

     
    11401140        color: #1d2327;
    11411141}
    11421142
    1143 .wp-switch-editor:active,
    1144 .html-active .switch-html:focus,
    1145 .tmce-active .switch-tmce:focus {
    1146         box-shadow: none;
    1147 }
    1148 
    11491143.wp-switch-editor:active {
    11501144        background-color: #f6f7f7;
    11511145        box-shadow: none;