Index: trunk/src/org/openstreetmap/josm/gui/tagging/presets/items/Check.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/tagging/presets/items/Check.java	(revision 16275)
+++ trunk/src/org/openstreetmap/josm/gui/tagging/presets/items/Check.java	(revision 16276)
@@ -91,4 +91,5 @@
         check.setPropertyText(key);
         check.setState(check.getState()); // to update the tooltip text
+        check.setComponentPopupMenu(getPopupMenu());
 
         if (icon != null) {
Index: trunk/src/org/openstreetmap/josm/gui/tagging/presets/items/ComboMultiSelect.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/tagging/presets/items/ComboMultiSelect.java	(revision 16275)
+++ trunk/src/org/openstreetmap/josm/gui/tagging/presets/items/ComboMultiSelect.java	(revision 16276)
@@ -388,4 +388,5 @@
         final JLabel label = new JLabel(tr("{0}:", locale_text));
         label.setToolTipText(getKeyTooltipText());
+        label.setComponentPopupMenu(getPopupMenu());
         p.add(label, GBC.std().insets(0, 0, 10, 0));
         addToPanelAnchor(p, default_, presetInitiallyMatches);
Index: trunk/src/org/openstreetmap/josm/gui/tagging/presets/items/KeyedItem.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/tagging/presets/items/KeyedItem.java	(revision 16275)
+++ trunk/src/org/openstreetmap/josm/gui/tagging/presets/items/KeyedItem.java	(revision 16276)
@@ -12,7 +12,12 @@
 import java.util.TreeSet;
 
+import javax.swing.JPopupMenu;
+
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
 import org.openstreetmap.josm.data.osm.OsmUtils;
+import org.openstreetmap.josm.data.osm.Tag;
 import org.openstreetmap.josm.data.preferences.BooleanProperty;
+import org.openstreetmap.josm.gui.dialogs.properties.HelpTagAction;
+import org.openstreetmap.josm.gui.dialogs.properties.TaginfoAction;
 import org.openstreetmap.josm.gui.tagging.presets.TaggingPresetItem;
 
@@ -204,4 +209,13 @@
     }
 
+    protected JPopupMenu getPopupMenu() {
+        Tag tag = new Tag(key, null);
+        JPopupMenu popupMenu = new JPopupMenu();
+        popupMenu.add(tr("Key: {0}", key)).setEnabled(false);
+        popupMenu.add(new HelpTagAction(() -> tag));
+        popupMenu.add(new TaginfoAction(() -> tag, () -> null));
+        return popupMenu;
+    }
+
     @Override
     public String toString() {
Index: trunk/src/org/openstreetmap/josm/gui/tagging/presets/items/Text.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/tagging/presets/items/Text.java	(revision 16275)
+++ trunk/src/org/openstreetmap/josm/gui/tagging/presets/items/Text.java	(revision 16276)
@@ -166,4 +166,5 @@
         final JLabel label = new JLabel(locale_text + ':');
         label.setToolTipText(getKeyTooltipText());
+        label.setComponentPopupMenu(getPopupMenu());
         label.setLabelFor(value);
         p.add(label, GBC.std().insets(0, 0, 10, 0));
Index: trunk/src/org/openstreetmap/josm/gui/widgets/QuadStateCheckBox.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/widgets/QuadStateCheckBox.java	(revision 16275)
+++ trunk/src/org/openstreetmap/josm/gui/widgets/QuadStateCheckBox.java	(revision 16276)
@@ -48,6 +48,8 @@
         @Override
         public void mousePressed(MouseEvent e) {
-            grabFocus();
-            cbModel.nextState();
+            if (SwingUtilities.isLeftMouseButton(e)) {
+                grabFocus();
+                cbModel.nextState();
+            }
         }
     };
