Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/properties/TagEditHelper.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/properties/TagEditHelper.java	(revision 13138)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/properties/TagEditHelper.java	(revision 13139)
@@ -635,11 +635,11 @@
                @Override
                public void focusGained(FocusEvent e) {
+                   Logging.trace("Focus gained by {0}, e={1}", values, e);
                    String key = keys.getEditor().getItem().toString();
-
-                   List<AutoCompletionItem> valueList = autocomplete.getTagValues(getAutocompletionKeys(key), comparator);
-                   Logging.trace("Focus gained by {0}, e={1}", values, e);
-                   values.setPossibleAcItems(valueList);
-                   values.getEditor().selectAll();
-                   objKey = key;
+                   if (!Objects.equals(key, objKey)) {
+                       values.setPossibleAcItems(autocomplete.getTagValues(getAutocompletionKeys(key), comparator));
+                       values.getEditor().selectAll();
+                       objKey = key;
+                   }
                }
            };
Index: /trunk/src/org/openstreetmap/josm/gui/tagging/ac/AutoCompletingComboBox.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/tagging/ac/AutoCompletingComboBox.java	(revision 13138)
+++ /trunk/src/org/openstreetmap/josm/gui/tagging/ac/AutoCompletingComboBox.java	(revision 13139)
@@ -76,5 +76,7 @@
                     sysSel.setContents(old, null);
                 }
-            } else {
+            } else if (e != null && e.getOppositeComponent() != null) {
+                // Select all characters when the change of focus occurs inside JOSM only.
+                // When switching from another application, it is annoying, see #13747
                 editorComponent.selectAll();
             }
