]> source.dussan.org Git - nextcloud-server.git/commitdiff
Ignore Enter key up event on menu button toggles 16921/head
authorDaniel Calviño Sánchez <danxuliu@gmail.com>
Sun, 25 Aug 2019 15:18:26 +0000 (17:18 +0200)
committerDaniel Calviño Sánchez <danxuliu@gmail.com>
Thu, 29 Aug 2019 07:42:21 +0000 (09:42 +0200)
Like links, buttons generate a "click" event as well as the regular
"keydown" and "keyup" events when pressing Enter. Due to this, if both
the "click" and the "keyup" events are handled, when the menu is open
and Enter is pressed in the toggle the menu is first hidden when the
first event is handled, but then shown again when the second event is
handled. To prevent that only the "click" event should be handled when
the toggle is a button, like it is already done with links.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
core/js/js.js

index c1b93a85e3bfb1c5bede0454f9c97bde2c466e48..0d434722c6064589cc10b35bf367b53236814990 100644 (file)
@@ -640,9 +640,9 @@ Object.assign(window.OC, {
                var self = this;
                $menuEl.addClass('menu');
 
-               // On link, the enter key trigger a click event
+               // On link and button, the enter key trigger a click event
                // Only use the click to avoid two fired events
-               $toggle.on($toggle.prop('tagName') === 'A'
+               $toggle.on(($toggle.prop('tagName') === 'A' || $toggle.prop('tagName') === 'BUTTON')
                        ? 'click.menu'
                        : 'click.menu keyup.menu', function(event) {
                        // prevent the link event (append anchor to URL)