Theme Switcher: Opening themes details modal shouldn't require two clicks on touch devices.
Inspired by [26838]. see #31794. git-svn-id: https://develop.svn.wordpress.org/trunk@31914 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
parent
b64b88d03b
commit
a39ae803b6
|
@ -1847,19 +1847,31 @@
|
||||||
*/
|
*/
|
||||||
api.ThemeControl = api.Control.extend({
|
api.ThemeControl = api.Control.extend({
|
||||||
|
|
||||||
|
touchDrag: false,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @since 4.2.0
|
* @since 4.2.0
|
||||||
*/
|
*/
|
||||||
ready: function() {
|
ready: function() {
|
||||||
var control = this;
|
var control = this;
|
||||||
|
|
||||||
|
control.container.on( 'touchmove', '.theme', function() {
|
||||||
|
control.touchDrag = true;
|
||||||
|
});
|
||||||
|
|
||||||
// Bind details view trigger.
|
// Bind details view trigger.
|
||||||
control.container.on( 'click keydown', '.theme', function( event ) {
|
control.container.on( 'click keydown touchend', '.theme', function( event ) {
|
||||||
if ( api.utils.isKeydownButNotEnterEvent( event ) ) {
|
if ( api.utils.isKeydownButNotEnterEvent( event ) ) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( 'button' === event.target.className ) {
|
// Bail if the user scrolled on a touch device.
|
||||||
|
if ( control.touchDrag === true ) {
|
||||||
|
return control.touchDrag = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Prevent the modal from showing when the user clicks the action button.
|
||||||
|
if ( $( event.target ).is( '.theme-actions .button' ) ) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue