diff --git a/core/src/net/sf/openrocket/gui/figure3d/RocketFigure3d.java b/core/src/net/sf/openrocket/gui/figure3d/RocketFigure3d.java index febe7b5fd..6ac1b7892 100644 --- a/core/src/net/sf/openrocket/gui/figure3d/RocketFigure3d.java +++ b/core/src/net/sf/openrocket/gui/figure3d/RocketFigure3d.java @@ -267,13 +267,17 @@ public class RocketFigure3d extends JPanel implements GLEventListener { gl.glDisable(GLLightingFunc.GL_LIGHTING); final RocketComponent picked = rr.pick(drawable, configuration, pickPoint, pickEvent.isShiftDown() ? selection : null); - if (csl != null && picked != null) { + if (csl != null) { final MouseEvent e = pickEvent; SwingUtilities.invokeLater(new Runnable() { @Override public void run() { - csl.componentClicked(new RocketComponent[] { picked }, - e); + if ( picked == null ){ + log.debug("unselecting"); + csl.componentClicked(new RocketComponent[] { }, e); + } else { + csl.componentClicked(new RocketComponent[] { picked }, e); + } } }); diff --git a/core/src/net/sf/openrocket/gui/scalefigure/RocketPanel.java b/core/src/net/sf/openrocket/gui/scalefigure/RocketPanel.java index 910752133..c71237a1d 100644 --- a/core/src/net/sf/openrocket/gui/scalefigure/RocketPanel.java +++ b/core/src/net/sf/openrocket/gui/scalefigure/RocketPanel.java @@ -530,8 +530,10 @@ public class RocketPanel extends JPanel implements TreeSelectionListener, Change private void handleComponentClick(RocketComponent[] clicked, MouseEvent event){ // If no component is clicked, do nothing - if (clicked.length == 0) + if (clicked.length == 0){ + selectionModel.setSelectionPath(null); return; + } // Check whether the currently selected component is in the clicked components. TreePath path = selectionModel.getSelectionPath(); @@ -827,6 +829,7 @@ public class RocketPanel extends JPanel implements TreeSelectionListener, Change TreePath[] paths = selectionModel.getSelectionPaths(); if (paths == null) { figure.setSelection(null); + figure3d.setSelection(null); return; }