Index: trunk/src/org/openstreetmap/josm/gui/tagging/presets/items/ComboMultiSelect.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/tagging/presets/items/ComboMultiSelect.java	(revision 16542)
+++ trunk/src/org/openstreetmap/josm/gui/tagging/presets/items/ComboMultiSelect.java	(revision 16544)
@@ -14,4 +14,5 @@
 import java.util.Collection;
 import java.util.Collections;
+import java.util.Comparator;
 import java.util.List;
 import java.util.Objects;
@@ -20,4 +21,5 @@
 import java.util.concurrent.CopyOnWriteArraySet;
 import java.util.stream.Collectors;
+import java.util.stream.IntStream;
 
 import javax.swing.ImageIcon;
@@ -114,11 +116,18 @@
             }
 
+            if (index == -1) {
+                // Take the longest element for the preferred width (#19321)
+                // We do not want the editor to have the maximum height of all entries. Return a dummy with bogus height.
+                IntStream.range(0, list.getModel().getSize())
+                        .mapToObj(i -> getListCellRendererComponent(list, list.getModel().getElementAt(i), i, isSelected, cellHasFocus))
+                        .map(Component::getPreferredSize)
+                        .max(Comparator.comparingInt(dim -> dim.width))
+                        .ifPresent(dim -> lbl.setPreferredSize(new Dimension(dim.width, 10)));
+                return lbl;
+            }
+
             // Only return cached size, item is not shown
             if (!list.isShowing() && item.preferredWidth != -1 && item.preferredHeight != -1) {
-                if (index == -1) {
-                    lbl.setPreferredSize(new Dimension(item.preferredWidth, 10));
-                } else {
-                    lbl.setPreferredSize(new Dimension(item.preferredWidth, item.preferredHeight));
-                }
+                lbl.setPreferredSize(new Dimension(item.preferredWidth, item.preferredHeight));
                 return lbl;
             }
@@ -144,9 +153,4 @@
             item.preferredHeight = (short) lbl.getPreferredSize().height;
 
-            // We do not want the editor to have the maximum height of all
-            // entries. Return a dummy with bogus height.
-            if (index == -1) {
-                lbl.setPreferredSize(new Dimension(lbl.getPreferredSize().width, 10));
-            }
             return lbl;
         }
