diff --git a/diylc/diylc-core/src/org/diylc/presenter/Presenter.java b/diylc/diylc-core/src/org/diylc/presenter/Presenter.java index e3c04ded..c2c3de5c 100644 --- a/diylc/diylc-core/src/org/diylc/presenter/Presenter.java +++ b/diylc/diylc-core/src/org/diylc/presenter/Presenter.java @@ -1012,9 +1012,10 @@ public class Presenter implements IPlugInPort { (c.getValueForDisplay() != null && c.getValueForDisplay().toLowerCase().matches(criteria.toLowerCase()))) matching.add(c); } - updateSelection(matching); + updateSelection(matching); messageDispatcher.dispatchMessage(EventType.REPAINT); - messageDispatcher.dispatchMessage(EventType.SCROLL_TO, getSelectionBounds(true)); + if (matching.size() > 0) + messageDispatcher.dispatchMessage(EventType.SCROLL_TO, getSelectionBounds(true)); } @Override diff --git a/diylc/diylc-swing/src/org/diylc/swing/plugins/canvas/CanvasPlugin.java b/diylc/diylc-swing/src/org/diylc/swing/plugins/canvas/CanvasPlugin.java index 7c0ac26a..1533ce01 100644 --- a/diylc/diylc-swing/src/org/diylc/swing/plugins/canvas/CanvasPlugin.java +++ b/diylc/diylc-swing/src/org/diylc/swing/plugins/canvas/CanvasPlugin.java @@ -762,7 +762,8 @@ public class CanvasPlugin implements IPlugIn, ClipboardOwner { case SCROLL_TO: Rectangle visibleRect2 = canvasPanel.getVisibleRect(); Rectangle2D targetRect = (Rectangle2D) params[0]; - canvasPanel.scrollRectToVisible(new Rectangle((int)(targetRect.getCenterX() - visibleRect2.width / 2), + if (targetRect != null) + canvasPanel.scrollRectToVisible(new Rectangle((int)(targetRect.getCenterX() - visibleRect2.width / 2), (int)(targetRect.getCenterY() - visibleRect2.height / 2), visibleRect2.width, visibleRect2.height)); break; }