mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/Math
synced 2024-11-24 07:34:22 +00:00
Merge "Resize math dialog input to fit the available space"
This commit is contained in:
commit
e736202170
|
@ -101,8 +101,7 @@ ve.ui.MWMathDialog.prototype.initialize = function () {
|
|||
|
||||
this.input = new ve.ui.MWAceEditorWidget( {
|
||||
multiline: true,
|
||||
autosize: true,
|
||||
maxRows: 7,
|
||||
rows: 1, // This will be recalculated later in onWindowManagerResize
|
||||
autocomplete: 'live'
|
||||
} ).setLanguage( 'latex' );
|
||||
|
||||
|
@ -230,6 +229,8 @@ ve.ui.MWMathDialog.prototype.getReadyProcess = function ( data ) {
|
|||
.next( function () {
|
||||
// Resize the input once the dialog has been appended
|
||||
this.input.adjustSize( true ).focus().moveCursorToEnd();
|
||||
this.getManager().connect( this, { resize: 'onWindowManagerResize' } );
|
||||
this.onWindowManagerResize();
|
||||
}, this );
|
||||
};
|
||||
|
||||
|
@ -242,6 +243,7 @@ ve.ui.MWMathDialog.prototype.getTeardownProcess = function ( data ) {
|
|||
this.input.off( 'change', this.onChangeHandler );
|
||||
this.displaySelect.off( 'choose', this.onChangeHandler );
|
||||
this.idInput.off( 'change', this.onChangeHandler );
|
||||
this.getManager().disconnect( this );
|
||||
}, this );
|
||||
};
|
||||
|
||||
|
@ -270,6 +272,26 @@ ve.ui.MWMathDialog.prototype.getBodyHeight = function () {
|
|||
return 600;
|
||||
};
|
||||
|
||||
/**
|
||||
* Handle the window resize event
|
||||
*/
|
||||
ve.ui.MWMathDialog.prototype.onWindowManagerResize = function () {
|
||||
var dialog = this;
|
||||
this.input.loadingPromise.done( function () {
|
||||
// Wait for the window resize transition to finish
|
||||
setTimeout( function () {
|
||||
var availableSpace, maxInputHeight, singleLineHeight, minRows,
|
||||
border = 1,
|
||||
padding = 3;
|
||||
availableSpace = dialog.menuLayout.$content.height() - dialog.input.$element.position().top;
|
||||
singleLineHeight = 19;
|
||||
maxInputHeight = availableSpace - 2 * ( border + padding );
|
||||
minRows = Math.floor( maxInputHeight / singleLineHeight );
|
||||
dialog.input.setMinRows( minRows );
|
||||
}, 250 );
|
||||
} );
|
||||
};
|
||||
|
||||
/**
|
||||
* Handle the click event on the list
|
||||
*
|
||||
|
|
Loading…
Reference in a new issue