mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/WikiEditor
synced 2024-11-28 10:11:03 +00:00
Merge "Preserve textarea state when building WikiEditor UI"
This commit is contained in:
commit
695dff5871
|
@ -486,6 +486,9 @@ if ( !context || typeof context === 'undefined' ) {
|
|||
.append( $( '<span>' + mediaWiki.msg( 'wikieditor-loading' ) + '</span>' )
|
||||
.css( 'marginTop', context.$textarea.height() / 2 ) );
|
||||
*/
|
||||
/* Preserving cursor and focus state, which will get lost due to wrapAll */
|
||||
var hasFocus = context.$textarea.is( ':focus' ),
|
||||
cursorPos = context.$textarea.textSelection( 'getCaretPosition', { startAndEnd: true } );
|
||||
// Encapsulate the textarea with some containers for layout
|
||||
context.$textarea
|
||||
/* Disabling our loading div for now
|
||||
|
@ -497,6 +500,14 @@ if ( !context || typeof context === 'undefined' ) {
|
|||
.wrapAll( $( '<div>' ).addClass( 'wikiEditor-ui-left' ) )
|
||||
.wrapAll( $( '<div>' ).addClass( 'wikiEditor-ui-bottom' ) )
|
||||
.wrapAll( $( '<div>' ).addClass( 'wikiEditor-ui-text' ) );
|
||||
// Restore scroll position after this wrapAll (tracked by mediawiki.action.edit)
|
||||
context.$textarea.prop( 'scrollTop', $( '#wpScrolltop' ).val() );
|
||||
// Restore focus and cursor if needed
|
||||
if ( hasFocus ) {
|
||||
context.$textarea.focus();
|
||||
context.$textarea.textSelection( 'setSelection', { start: cursorPos[0], end: cursorPos[1] } );
|
||||
}
|
||||
|
||||
// Get references to some of the newly created containers
|
||||
context.$ui = context.$textarea.parent().parent().parent().parent().parent();
|
||||
context.$wikitext = context.$textarea.parent().parent().parent().parent();
|
||||
|
|
Loading…
Reference in a new issue