var loc = extent.center();
context.map().centerEase(loc);
+ // we could enter the mode multiple times, so reset follow for next time
+ _follow = false;
}
_base = context.graph();
_coalesceChanges = false;
- loadActivePresets();
+ loadActivePresets(true);
return entityEditor
.modified(false);
};
- function loadActivePresets() {
+ function loadActivePresets(isForNewSelection) {
var graph = context.graph();
return _mainPresetIndex.item(pID);
});
- // A "weak" preset doesn't set any tags. (e.g. "Address")
- var weakPreset = _activePresets.length === 1 &&
- Object.keys(_activePresets[0].addTags || {}).length === 0;
- // Don't replace a weak preset with a fallback preset (e.g. "Point")
- if (weakPreset && matches.length === 1 && matches[0].isFallback()) { return; }
+ if (!isForNewSelection) {
+ // A "weak" preset doesn't set any tags. (e.g. "Address")
+ var weakPreset = _activePresets.length === 1 &&
+ !_activePresets[0].isFallback() &&
+ Object.keys(_activePresets[0].addTags || {}).length === 0;
+ // Don't replace a weak preset with a fallback preset (e.g. "Point")
+ if (weakPreset && matches.length === 1 && matches[0].isFallback()) { return; }
+ }
entityEditor.presets(matches);
}
// some targets have default click events we don't want to override
var isOkayTarget = event.composedPath().some(function(node) {
- // clicking <label> affects its <input> by default
- return node.nodeName === 'LABEL' ||
+ // we only care about element nodes
+ return node.nodeType === 1 &&
+ // clicking <input> focuses it and/or changes a value
+ (node.nodeName === 'INPUT' ||
+ // clicking <label> affects its <input> by default
+ node.nodeName === 'LABEL' ||
// clicking <a> opens a hyperlink by default
- node.nodeName === 'A';
+ node.nodeName === 'A');
});
if (isOkayTarget) { return; }
var context = utilRebind({}, dispatch$1, 'on');
var _deferred = new Set();
- context.version = '2.18.2';
+ context.version = '2.18.3';
context.privacyVersion = '20200407';
// iD will alter the hash so cache the parameters intended to setup the session