Skip to:
Content

bbPress.org

Ticket #1917: 1917.3.patch

File 1917.3.patch, 1.8 KB (added by ethitter, 8 years ago)

Handling tabbing out of the Visual Editor

  • templates/default/bbpress-functions.php

     
    9090                add_action( 'bbp_head',              array( $this, 'head_scripts'          ) ); // Output some extra JS in the <head>
    9191                add_action( 'bbp_ajax_favorite',     array( $this, 'ajax_favorite'         ) ); // Handles the ajax favorite/unfavorite
    9292                add_action( 'bbp_ajax_subscription', array( $this, 'ajax_subscription'     ) ); // Handles the ajax subscribe/unsubscribe
     93                add_filter( 'teeny_mce_before_init', array( $this, 'tinymce_settings'      ) ); // Aid with tabbing out of the editor
     94                add_filter( 'tiny_mce_before_init',  array( $this, 'tinymce_settings'      ) ); // Aid with tabbing out of the editor
    9395
    9496                /** Template Wrappers *************************************************/
    9597
     
    396398                // Action succeeded
    397399                bbp_ajax_response( true, bbp_get_user_subscribe_link( $attrs, $user_id, false ), 200 );
    398400        }
     401
     402        /**
     403         * Support tabbing out of the Visual Editor
     404         *
     405         * @param array $settings
     406         * @uses is_bbpress() To ensure settings are applied only to bbPress instances of the editor.
     407         * @filter teeny_mce_before_init, tiny_mce_before_init
     408         * @return array
     409         */
     410        public function tinymce_settings( $settings ) {
     411                if ( is_bbpress() )
     412                        $settings['setup'] = "[function(ed){
     413                                ed.onKeyDown.add( function( ed, e ) { console.debug(e);
     414                                        if ( e.keyCode == 9 ) {
     415                                                if ( e.shiftKey )
     416                                                        jQuery( '#bbp_topic_title' ).focus();
     417                                                else
     418                                                        jQuery( '#bbp_topic_tags' ).focus();
     419
     420                                                e.preventDefault();
     421                                        }
     422                                } );
     423                        }][0]";
     424
     425                return $settings;
     426        }
    399427}
    400428new BBP_Default();
    401429endif;