From d61d185a735acaf56c71268c9e71604c36e977c2 Mon Sep 17 00:00:00 2001 From: Brad Jorsch Date: Thu, 25 Feb 2016 10:05:12 -0500 Subject: [PATCH] ApiSandbox: Blur before sending request OO.ui.ButtonWidget doesn't take focus itself, so clicking the "Make request" button isn't sending the blur event, so stuff like OO.ui.CapsuleMultiSelectWidget doesn't get to process its input until too late. Bug: T128054 Change-Id: I00913123e0019c096890b2829bfea3a77c551b2e --- .../mediawiki.special/mediawiki.special.apisandbox.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/resources/src/mediawiki.special/mediawiki.special.apisandbox.js b/resources/src/mediawiki.special/mediawiki.special.apisandbox.js index bd1cad6bb9..4159906d77 100644 --- a/resources/src/mediawiki.special/mediawiki.special.apisandbox.js +++ b/resources/src/mediawiki.special/mediawiki.special.apisandbox.js @@ -791,13 +791,20 @@ * Submit button handler */ sendRequest: function () { - var page, subpages, i, query, $result, + var page, subpages, i, query, $result, $focus, progress, $progressText, progressLoading, deferreds = [], params = {}, displayParams = {}, checkPages = [ pages.main ]; + // Blur any focused widget before submit, because + // OO.ui.ButtonWidget doesn't take focus itself (T128054) + $focus = $( '#mw-apisandbox-ui' ).find( document.activeElement ); + if ( $focus.length ) { + $focus[ 0 ].blur(); + } + suppressErrors = false; while ( checkPages.length ) { -- 2.20.1