From: Brad Jorsch Date: Fri, 14 Jul 2017 12:42:47 +0000 (-0400) Subject: DateTimeInputWidget: Ignore wheel when not focused X-Git-Tag: 1.31.0-rc.0~2685^2 X-Git-Url: https://git.cyclocoop.org/%7B%24www_url%7Dadmin/compta/banques/ajouter.php?a=commitdiff_plain;h=362ac65f459c02ade4a937a399bfecc5e0d54c17;p=lhc%2Fweb%2Fwiklou.git DateTimeInputWidget: Ignore wheel when not focused Much like I6c9f4679, it's probably best that the widget only use wheel input when it's focused so it won't accidentally trigger when scrolling through a form. Bug: T170607 Change-Id: I46dc3eb01733be939c62e7e7f3f044f21ef1e6d8 --- diff --git a/resources/src/mediawiki.widgets.datetime/DateTimeInputWidget.js b/resources/src/mediawiki.widgets.datetime/DateTimeInputWidget.js index e42ab25789..9233eef271 100644 --- a/resources/src/mediawiki.widgets.datetime/DateTimeInputWidget.js +++ b/resources/src/mediawiki.widgets.datetime/DateTimeInputWidget.js @@ -183,6 +183,16 @@ /* Methods */ + /** + * Get the currently focused field, if any + * + * @private + * @return {jQuery} + */ + mw.widgets.datetime.DateTimeInputWidget.prototype.getFocusedField = function () { + return this.$fields.find( this.getElementDocument().activeElement ); + }; + /** * Convert a date string to a Date * @@ -717,7 +727,7 @@ var delta = 0, spec = $field.data( 'mw-widgets-datetime-dateTimeInputWidget-fieldSpec' ); - if ( this.isDisabled() ) { + if ( this.isDisabled() || !this.getFocusedField().length ) { return; } @@ -803,7 +813,7 @@ * @inheritdoc */ mw.widgets.datetime.DateTimeInputWidget.prototype.focus = function () { - if ( !this.$fields.find( document.activeElement ).length ) { + if ( !this.getFocusedField().length ) { this.$fields.find( '.mw-widgets-datetime-dateTimeInputWidget-editField' ).first().focus(); } return this; @@ -813,7 +823,7 @@ * @inheritdoc */ mw.widgets.datetime.DateTimeInputWidget.prototype.blur = function () { - this.$fields.find( document.activeElement ).blur(); + this.getFocusedField().blur(); return this; };