diff --git a/key.ui/src/main/java/de/uka/ilkd/key/gui/ProofManagementDialog.java b/key.ui/src/main/java/de/uka/ilkd/key/gui/ProofManagementDialog.java index 6a74d6eae2..0c28bd43f8 100644 --- a/key.ui/src/main/java/de/uka/ilkd/key/gui/ProofManagementDialog.java +++ b/key.ui/src/main/java/de/uka/ilkd/key/gui/ProofManagementDialog.java @@ -85,15 +85,22 @@ private ProofManagementDialog(MainWindow mainWindow, final InitConfig initConfig classTree.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { - if (e.getClickCount() == 2) { - final ClassTree.Entry entry = classTree.getSelectedEntry(); - if (entry.kjt != null && entry.target != null) { - final ImmutableSet contracts = initConfig.getServices() - .getSpecificationRepository().getContracts(entry.kjt, entry.target); - final Contract c = contracts.iterator().next(); - if (contracts.size() == 1 && c == contractPanelByMethod.getContract()) { - startButton.doClick(); - } + // Check that it is a double click on an item, not a folder or the background + if (e.getClickCount() != 2) { + return; + } + // row is -1 when the user does not click on an entry but on the background + int row = classTree.getRowForLocation(e.getX(), e.getY()); + if (row == -1) { + return; + } + final ClassTree.Entry entry = classTree.getSelectedEntry(); + if (entry.kjt != null && entry.target != null) { + final ImmutableSet contracts = initConfig.getServices() + .getSpecificationRepository().getContracts(entry.kjt, entry.target); + final Contract c = contracts.iterator().next(); + if (contracts.size() == 1 && c == contractPanelByMethod.getContract()) { + startButton.doClick(); } } }