commit 1fe29f2512546f8344242eb6e95f6af9d351255b
parent d63c0a61f016c6098808e142c522c49adf955d74
Author: Sergej Orlov <wladimirych@gmail.com>
Date: Fri, 5 Dec 2025 23:40:17 +0100
layers control: disable display of hotkeys on phones
Diffstat:
3 files changed, 17 insertions(+), 10 deletions(-)
diff --git a/src/App.js b/src/App.js
@@ -183,10 +183,13 @@ function setUp() { // eslint-disable-line complexity
/* controls top-right corner */
const layersControl = L.control.layers(null, null, {collapsed: false});
- enableLayersControlHotkeys(layersControl);
+ const areHotkeysEnabled = !L.Browser.touch || !L.Browser.mobile;
+ if (areHotkeysEnabled) {
+ enableLayersControlHotkeys(layersControl);
+ }
enableLayersControlAdaptiveHeight(layersControl);
enableLayersMinimize(layersControl);
- enableLayersConfig(layersControl, getLayers());
+ enableLayersConfig(layersControl, getLayers(), {withHotkeys: areHotkeysEnabled});
layersControl.addTo(map);
layersControl.enableHashState('l');
diff --git a/src/lib/leaflet.control.layers.configure/index.js b/src/lib/leaflet.control.layers.configure/index.js
@@ -22,9 +22,10 @@ function getLayerDefaultHotkey(layer) {
}
class LayersConfigDialog {
- constructor(builtInLayers, customLayers, cbOk) {
+ constructor(builtInLayers, customLayers, withHotkeys, cbOk) {
this.builtInLayers = builtInLayers;
this.customLayers = customLayers;
+ this.withHotkeys = withHotkeys;
this.cbOk = cbOk;
this.visible = ko.observable(false);
@@ -60,6 +61,7 @@ class LayersConfigDialog {
<label class="layer-label">
<input type="checkbox" class="layer-enabled-checkbox" data-bind="checked: enabled"/>
<span data-bind="text: title"></span>
+ <!-- ko if: $root.withHotkeys -->
<div class="hotkey-input"
title="Change hotkey"
tabindex="0"
@@ -76,6 +78,7 @@ class LayersConfigDialog {
keyupBubble: false">
></div>
<div class="error" data-bind="text: error, visible: error"></div>
+ <!-- /ko -->
</label>
<!-- /ko -->
<!-- /ko -->
@@ -197,7 +200,7 @@ class LayersConfigDialog {
}
}
-function enableConfig(control, {layers, customLayersOrder}) {
+function enableConfig(control, {layers, customLayersOrder}, options = {withHotkeys: true}) {
if (control._configEnabled) {
return;
}
@@ -213,6 +216,7 @@ function enableConfig(control, {layers, customLayersOrder}) {
_builtinLayersByGroup: layers,
_builtinLayers: [].concat(...layers.map((group) => group.layers)),
_customLayers: [],
+ _withHotkeys: options.withHotkeys,
onAdd: function(map) {
const container = originalOnAdd.call(this, map);
@@ -324,7 +328,10 @@ function enableConfig(control, {layers, customLayersOrder}) {
initLayersConfigWindow: function() {
this._layersConfigDialog = new LayersConfigDialog(
- this._builtinLayersByGroup, this._customLayers, this.onConfigDialogOkClicked.bind(this)
+ this._builtinLayersByGroup,
+ this._customLayers,
+ this._withHotkeys,
+ this.onConfigDialogOkClicked.bind(this),
);
this._map._controlContainer.appendChild(this._layersConfigDialog.getWindow());
},
@@ -693,7 +700,6 @@ function enableConfig(control, {layers, customLayersOrder}) {
}
return null;
}
-
}
);
}
diff --git a/src/lib/leaflet.control.layers.hotkeys/index.js b/src/lib/leaflet.control.layers.hotkeys/index.js
@@ -43,10 +43,8 @@ function enableHotkeys(control) {
_hotkeysEnabled: true,
_addItem: function(obj) {
- if (!L.Browser.touch || !L.Browser.mobile) {
- obj = L.Util.extend({}, obj);
- obj.name = extendLayerName(obj.name, obj.layer);
- }
+ obj = L.Util.extend({}, obj);
+ obj.name = extendLayerName(obj.name, obj.layer);
return originalAddItem.call(this, obj);
},