Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/CommandStackDialog.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/CommandStackDialog.java	(revision 7397)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/CommandStackDialog.java	(revision 7398)
@@ -51,11 +51,15 @@
 import org.openstreetmap.josm.tools.Shortcut;
 
+/**
+ * Dialog displaying list of all executed commands (undo/redo buffer).
+ * @since 94
+ */
 public class CommandStackDialog extends ToggleDialog implements CommandQueueListener {
 
-    private DefaultTreeModel undoTreeModel = new DefaultTreeModel(new DefaultMutableTreeNode());
-    private DefaultTreeModel redoTreeModel = new DefaultTreeModel(new DefaultMutableTreeNode());
-
-    private JTree undoTree = new JTree(undoTreeModel);
-    private JTree redoTree = new JTree(redoTreeModel);
+    private final DefaultTreeModel undoTreeModel = new DefaultTreeModel(new DefaultMutableTreeNode());
+    private final DefaultTreeModel redoTreeModel = new DefaultTreeModel(new DefaultMutableTreeNode());
+
+    private final JTree undoTree = new JTree(undoTreeModel);
+    private final JTree redoTree = new JTree(redoTreeModel);
 
     private UndoRedoSelectionListener undoSelectionListener;
@@ -100,4 +104,5 @@
         redoSelectionListener = new UndoRedoSelectionListener(redoTree);
         redoTree.getSelectionModel().addTreeSelectionListener(redoSelectionListener);
+        InputMapUtils.unassignCtrlShiftUpDown(redoTree, JComponent.WHEN_FOCUSED);
 
         JPanel treesPanel = new JPanel(new GridBagLayout());
@@ -132,5 +137,6 @@
 
     private static class CommandCellRenderer extends DefaultTreeCellRenderer {
-        @Override public Component getTreeCellRendererComponent(JTree tree, Object value, boolean sel, boolean expanded, boolean leaf, int row, boolean hasFocus) {
+        @Override
+        public Component getTreeCellRendererComponent(JTree tree, Object value, boolean sel, boolean expanded, boolean leaf, int row, boolean hasFocus) {
             super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, row, hasFocus);
             DefaultMutableTreeNode v = (DefaultMutableTreeNode)value;
@@ -144,4 +150,14 @@
     }
 
+    private void updateTitle() {
+        int undo = undoTreeModel.getChildCount(undoTreeModel.getRoot());
+        int redo = redoTreeModel.getChildCount(redoTreeModel.getRoot());
+        if (undo > 0 || redo > 0) {
+            setTitle(tr("Command Stack: Undo: {0} / Redo: {1}", undo, redo));
+        } else {
+            setTitle(tr("Command Stack"));
+        }
+    }
+
     /**
      * Selection listener for undo and redo area.
@@ -179,5 +195,5 @@
 
     /**
-     * Wires updater for enabled state to the events.
+     * Wires updater for enabled state to the events. Also updates dialog title if needed.
      */
     protected void wireUpdateEnabledStateUpdater(final IEnabledStateUpdating updater, JTree tree) {
@@ -195,4 +211,5 @@
             public void treeNodesChanged(TreeModelEvent e) {
                 updater.updateEnabledState();
+                updateTitle();
             }
 
@@ -200,4 +217,5 @@
             public void treeNodesInserted(TreeModelEvent e) {
                 updater.updateEnabledState();
+                updateTitle();
             }
 
@@ -205,4 +223,5 @@
             public void treeNodesRemoved(TreeModelEvent e) {
                 updater.updateEnabledState();
+                updateTitle();
             }
 
@@ -210,4 +229,5 @@
             public void treeStructureChanged(TreeModelEvent e) {
                 updater.updateEnabledState();
+                updateTitle();
             }
         });
@@ -339,4 +359,7 @@
     }
 
+    /**
+     * Action that selects the objects that take part in a command.
+     */
     public class SelectAction extends AbstractAction implements IEnabledStateUpdating {
 
@@ -372,4 +395,7 @@
     }
 
+    /**
+     * Action that selects the objects that take part in a command, then zoom to them.
+     */
     public class SelectAndZoomAction extends SelectAction {
         /**
