Index: trunk/src/org/openstreetmap/josm/gui/widgets/QuadStateCheckBox.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/widgets/QuadStateCheckBox.java	(revision 17648)
+++ trunk/src/org/openstreetmap/josm/gui/widgets/QuadStateCheckBox.java	(revision 17649)
@@ -50,6 +50,5 @@
         public void mousePressed(MouseEvent e) {
             if (SwingUtilities.isLeftMouseButton(e)) {
-                grabFocus();
-                cbModel.nextState();
+                nextState();
             }
         }
@@ -73,6 +72,5 @@
             @Override
             public void actionPerformed(ActionEvent e) {
-                grabFocus();
-                cbModel.nextState();
+                nextState();
             }
         });
@@ -132,4 +130,12 @@
     public State getState() {
         return cbModel.getState();
+    }
+
+    /**
+     * Rotate to the next allowed state.
+     */
+    public void nextState() {
+        grabFocus();
+        cbModel.nextState();
     }
 
